加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

巧用eval进行赋值

(2015-06-30 11:22:19)
分类: 菜B学MATLAB
有时候,在程序的输入参数有很多的情况下,我们往往会选择将其写成一个txt或者mat文档,以方便查阅和修改。在读取数据的时候,若用importdata函数,变量名和数据是存储在一个structure中。可见,我们需要一种方便的方法对各变量进行赋值。
这里用到的函数是:
eval
也可能会用到数据格式转换的函数:
cell2mat,num2str etc.
两个例子:
  • 1.a='abc',以abc作为变量名存储其他变量
X=1
a='abc'
eval_r([a '=X'])
  • 2.将aaa1,aaa2,aaa3中存储的数据赋值给str结构体中的变量名
aaa1 = [1 2 3; 4 5 6; 7 8 9];
aaa2 = [4 5 6; 5 8 2];
aaa3 = [6 9 8 5; 6 5 9 7];
str={'abc','defg','hi'} ;
for i=1:length(str)
    eval_r([cell2mat(str(i)) '=' 'aaa' num2str(i)]);
end


Ps:注意eval函数的用法,eval_r(str)

str = [string1, int2str(var), string2, ...][ ]表示对字符串的catch操作,[ ]中,如果是变量,则不需要加单引号,如果是字符串需要加单引号。如果变量不是字符串变量,需要用2str的函数来进行转换。

int2str,num2str,cell2mat

 

参考:http://www.ilovematlab.cn/thread-33335-1-1.html

matlab-help文档

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有