巧用eval进行赋值
(2015-06-30 11:22:19)分类: 菜B学MATLAB |
有时候,在程序的输入参数有很多的情况下,我们往往会选择将其写成一个txt或者mat文档,以方便查阅和修改。在读取数据的时候,若用importdata函数,变量名和数据是存储在一个structure中。可见,我们需要一种方便的方法对各变量进行赋值。
eval_r([cell2mat(str(i)) '=' 'aaa'
num2str(i)]);
这里用到的函数是:
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)
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文档