Matlab eval用法

来源:百度知道 编辑:UC知道 时间:2024/06/08 15:57:36
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)]);
应该怎么改或者说分号加在哪里?
谢谢

eval()函数的功能就是将括号内的字符串视为语句并运行,其用法为:

例如: eval('y1=sin(2)')就是相当于在matlab命令窗口输入了y1=sin(2)这条命令。
多在循环中使用,可以对多个名字有规则的变量或文件进行操作,
例一:
for x=1:5
eval(['y',num2str(x),'=',num2str(x^2),';'])
end
以上语句等价于执行以下5句:
ynum2str(1)=num2str(1^2);
ynum2str(2)=num2str(2^2);
ynum2str(3)=num2str(3^2);
ynum2str(4)=num2str(4^2);
ynum2str(5)=num2str(5^2);
例二:
subplot(711);plot(t,y);title('原始信号’);
for i=1:6
subplot(7,1,i+1);
plot(t,imf(i,:));
eval(['title(''IMF',int2str(i),''');']);
end
-------------------------
以上6行程序实际上是执行以下7条命令
subplot(711);plot(t,y);title('原始信号');
subplot(7,1,2);plot(t,imf(1,:));title('IMF1');
subplot(7,1,3);plot(t,imf(2,:));title('IMF2');
subplot(7,1,4);plot(t,imf(3,:));title('IMF3');
subplot(7,1,5);plot(t,imf(4,:));title('IMF4');
subplot(7,1,6);pl