eval('a=rand(2,3)')显示a
a =
0.4103 0.0579 0.8132
0.8936 0.3529 0.0099
eval('a=rand(2,3);') 不显示a
temp_name=[1,2,3];
temp={'data'};
eval([str2mat(temp) '=' mat2str(temp_name)]);
输出
data =
1 2 3
我的问题是不输出显示data
请问我这个句子 eval([str2mat(temp) '=' mat2str(temp_name)]);
应该怎么改或者说分号加在哪里?
谢谢
1、假如我要对a1,a2,a3,a4,……,a100分别赋予1,2,3,……,100,这时eval就发挥作用了。
for i=1:100
eval(['a' num2str(i) '=' num2str(i)]);
end
2、再比如批量存数据或图片文件等等。
那么开始提到的例子也就好解释了。
注意:eval中的中括号在两个以上字符串出现时一定要有,起连接作用。
如:
input:[‘hello’ ‘world’]
output:helloworld
扩展资料:
函数说明
eval(expression)在字符串表达式中评估MATLAB代码。如果你在一个匿名函数或者含有嵌套函数的函数里面使用eval,那么评估的expression将不能创建一个变量。
[output1,...,outputN]=eval(expression) 从特定变量表达式即expression中存储所有的输出。
输入参数:
expression:含有有效的MATLAB表达式的字符串。如果要在表达式即expression里面包含数值,请使用int2str,num2str或者sprintf进行转换。
输出参数:
output1,...,outputN:是评估的表达式expression中的输出。
参考资料:百度百科—eval(MATLAB函数)