找回密码
 注册
Simdroid-非首页
查看: 80|回复: 4

求助:有没有办法吧子程序里生成的所有变量统一存为一个结构数组

[复制链接]
发表于 2011-6-22 23:22:53 | 显示全部楼层 |阅读模式 来自 美国
RT. 我用ANSYS做完分析后要用matlab做后处理。所以我有一个子程序去读取我为ansys写的变量定义的 txt 文件。读取以后我需要把这些变量带到其他子程序去运行。但是因为我跑不同的模型需要的变量不一样,所以我没办法一个一个吧这些变量存成结构数组。所以我想问一下有没有办法能在子程序里面直接把生成的所有变量存成结构数组?

困难点在于:
1.我每次读取的  txt 文件里定义的变量都是不一样的,所以每次读取之前无法判断会读到那些变量名。

2.ANSYS这个变量定义的 txt 文件里面里面本身还有一些运算。我读取的方法是读取字符串,转化成matlab的语句运行生成matlab变量。所以我不能单纯的在每次读到的字符串前面加东西。

不知道各位大侠有没有什么好办法能把这些“未知”的变量存成一个结构数组,谢谢
发表于 2011-6-28 10:27:29 | 显示全部楼层 来自 台湾
Simdroid开发平台
本帖最后由 ChaChing 于 2011-6-28 10:36 编辑

不确定LZ的文件样式, 是否像这样?
  1. a22  bs12 tsaa
  2. 11    52   0.5
  3. 15    86   0.8
  4. 18    77   2.3
复制代码
若是, 使用importdata不就都可以了吗
  1. clc; clear; aa=importdata('zzz.txt');
  2. for k=1:length(aa.textdata), eval([char(aa.textdata(k)),'=aa.data(:,',num2str(k),');', ]); end
复制代码

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2011-6-29 00:07:06 | 显示全部楼层 来自 美国
谢谢,我的文件格式不是这样的,这个 txt 文件是类似 fortran的编程语言,里面对变量也有运算,我读取整个文件以后用 matlab 把 fortran 的语言转换成matlab语言,然后再生成 最终的 matlab 里面的变量。

不过现在我已经解决这个问题了。我的方法是在读取了文件,生成所有变量以后,用 a = who 的语句把 workspace里面所有的变量读取出来,这样a 就是一个字符串的 cell,然后在逐条读取 a ,然后改变量名字把它变成结构数组。

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2011-6-29 09:47:19 | 显示全部楼层 来自 河北廊坊
用save 将工作空间中的你要的变量保存或者所有变量保存
然后用load载入,就可以了
如:
  1. >> a1=1

  2. a1 =

  3.      1

  4. >> a2=2

  5. a2 =

  6.      2

  7. >> as =4

  8. as =

  9.      4

  10. >> save data
  11. >> a = load('data.mat')

  12. a =

  13.     a1: 1
  14.     a2: 2
  15.     as: 4

  16. >> class(a)

  17. ans =

  18. struct

  19. >>
复制代码

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2011-6-29 23:33:24 | 显示全部楼层 来自 美国
版主果然是版主,这比我冥思苦想半天出来的方法省事多了,谢谢啦。
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-6 10:39 , Processed in 0.047647 second(s), 19 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表