MATLAB的eval用法

转自https://blog.csdn.net/qq_38412868/article/details/79185883

eval的功能简单来说就是可以把字符串当做命令来执行,

eval('y=sin(1)')与命令 y=sin(1)等价

eval用于循环中是再好不过了,特别是有些变量的名字中含有有规律的数字,比如我们现在要依次把data1,data2,data3写入excel,并命名为data1.xlsx,data2.xlsx,data3.xlsx,

当然你可以写三行:

xlswrirte('data1.xlsx',data1)

xlswrirte('data2.xlsx',data2)

xlswrirte('data3.xlsx',data3)

但是假如现在有1000个这种data1,data2,...,data1000呢

这个时候就需要eval出马了,我们也可以只用三行:

for i=1:1000

eval(['xlswrite(''data',num2str(i),'.xlsx'',','data',num2str(i),')'])

end

%注意上面的eval语句语句中第一个data前面有两个'',而xlsx后面也有两个'',这就是给我们初学者埋下的坑哈哈,两个''号中第一个'代表转义字符,意思是两个''号中第二个'号为命令中的'号,不是用来分割字符串文本的!

%使用eval时只需要先把想要表示的语句即命令写好,再用'号分割成一段段字符串,注意上面提到的'可以用作转义字符的情况

posted @ 2018-07-04 17:04  Horse-Ma  阅读(1807)  评论(0编辑  收藏  举报