我是靠谱客的博主 美好麦片,这篇文章主要介绍matlab eval函数用法,现在分享给大家,希望可以做个参考。

eval(‘expression’):执行文本中的表达式
例如eval(‘y=1’),执行的为y=1,这一表达式,就是把y赋值为1。
之前看到在eval里用到int2str,或num2str这样的函数,例如

复制代码
1
2
3
4
for 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
5
A = 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
8
clear 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
8
clear 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内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部