eval(‘expression’):执行文本中的表达式
例如eval(‘y=1’),执行的为y=1,这一表达式,就是把y赋值为1。
之前看到在eval里用到int2str,或num2str这样的函数,例如
复制代码
1
2
3
4for n=1:10 eval(['A',int2str(n),'=rand(10)']); end
执行的就是建立了十个随机10x10的矩阵A1到A10,即An=rand(10),因为rand(10)后面没有加分号,所以每次循环都会把结果显示在命令行。
eval经常会用在带序列名称的变量和带序列名称的文件中。帮助文件中可以看到并不推荐使用eval这一函数,而应该用其他方法代替。
例如
1.带序列名称的变量
建立元胞数组
复制代码
1
2
3
4
5A = cell(10,1); for n = 1:10 A{n} = rand(10); end
也是建立十个10x10的随机矩阵,通过花括号A{n}可以查询每个矩阵的具体数值。
2.带序列名称的文件
利用eval将数据写入excel
复制代码
1
2
3
4
5
6
7
8clear all;clc A = cell(10,1); for n = 1:10 A{n} = rand(10); eval(['xlswrite(''myfile',int2str(n),'.xlsx'',A{n})']) end
上面程序将生产的10个10x10随机矩阵分别写入myfile1,,,myfile10这十个xlsx文件中。
利用sprintf可以代替上述代码
复制代码
1
2
3
4
5
6
7
8clear all;clc num=10; for n=1:num randomdata=rand(10); currentfile=sprintf('myfile%d.xlsx',n); xlswrite(currentfile,randomdata) end
来源
https://ww2.mathworks.cn/help/matlab/matlab_prog/string-evaluation.html?searchHighlight=eval&s_tid=doc_srchtitle
最后
以上就是美好麦片最近收集整理的关于matlab eval函数用法的全部内容,更多相关matlab内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复