Matlab eval用法
问题补充说明:eval('a=rand(2,3)')显示aa = 0.4103 0.0579 0.8132 0.8936 0.3529 0.0099eval('a=rand(2,3);') 显示atemp_name=[1,2,3];temp={'data'};eval([str2mat(temp) '=' mat2str(temp_name)]);输data = 1 2 3我问题输显示data 请问我句 eval([str2mat(temp) '=' mat2str(temp_name)]);应该改或者说号加哪谢谢
eval()函数的功能就是将括号内的字符串视为语句并运行,其用法为:
例如:eva来自l('y1=sin(2)')就是相当于在matlab命令窗口输入了y1=sin(2)这条命令。
多在循环中使用,可以对多个名字有规则的变量备养比稳存义黄料保或文件进行操作,
例一章:
forx=1:5
eval(['y',num2str(x),'=',num2str(x^2),';'])
en360问答d
以上语句等价于执行以下5句:
ynum2str(1)=num2str(1^2);
血最料ynum2str(2)=片之想约干每打清听车据num2str(2^2);
ynum2str(3)=num2str(3^2);
ynum2str(4)=n原um2str(4^2这马林划怎优治助士眼);
ynum2str(5)=num2str(5^2);
例二:
subplot(711);plot(t,y);title('原始信号’);
fori=1:6
微谁毫在明音subplot(7,1,i+1);
plot(t,imf(i,:));
eval(['t这点值假itle(''IM还信氢治功转F',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,:));tit收量le('IMF4');
subplot(7,1,6);plot(t,imf(5,:));title('IMF5');
subplot(7,1,7);plot(t,imf(6,:));title('IMF6');
其中最后6条是通过循环里面执行的语句
这里主要是通过eval()函数实现了输出title('IMFi');这个语句
1.把title('IMF看做一个字符串
2.把i(i=1,2,3,4,5,6)这个浮点型变量以字符的形式输出
3.把');看做一个字符输放海巴串
以上三部分整合起来就是输出命令title('IMFi');
其中值得注意的是想要输出单撇号,用''代替'即可,就好像C语言用\\代替\是一个道理,都属于特殊符号。
标签:Matlab,eval,用法