MATLAB eval()函数的用法(附带实例)
MATLAB 中的 eval() 函数可以与文本变量一起使用,实现有力的文本宏工具,其调用格式为:
【实例 1】用 eval 函数分别计算 4 种不同类型的语句字符串,分别如下。
1) 在编辑器窗口中编写 M 文件并命名为 eval_exp1.m:
2) 在编辑器窗口中编写 M 文件并命名为 eval_exp2.m:
3) 在编辑器窗口中编写 M 文件并命名为 eval_exp3.m:
4) 在编辑器窗口中编写 M 文件并命名为 eval_exp4.m:
eval(s)该指令的功能为使用 MATLAB 的注释器求表达式的值或执行包含文本字符串 s 语句。
【实例 1】用 eval 函数分别计算 4 种不同类型的语句字符串,分别如下。
- “表达式”字符串;
- “指令语句”字符串;
- “备选指令语句”字符串;
- “组合”字符串。
1) 在编辑器窗口中编写 M 文件并命名为 eval_exp1.m:
clear all Array = 1:5; String = '[Array*2; Array/2; 2.^Array]'; Output = eval(String)输出结果如下:
Output = 2.0000 4.0000 6.0000 8.0000 10.0000 0.5000 1.0000 1.5000 2.0000 2.5000 2.0000 4.0000 8.0000 16.0000 32.0000
2) 在编辑器窗口中编写 M 文件并命名为 eval_exp2.m:
theta = pi; eval('Output = exp(sin(theta))'); who运行 M 文件,输出结果如下:
Output = 1.0000 您的变量为: Array Output String theta
3) 在编辑器窗口中编写 M 文件并命名为 eval_exp3.m:
Matrix = magic(3) Array = eval('Matrix(5,:)', 'Matrix(3,:)') errmessage = 'lasterr'运行 M 文件,输出结果如下:
Matrix = 8 1 6 3 5 7 4 9 2 Array = 4 9 2 errmessage = 'lasterr'
4) 在编辑器窗口中编写 M 文件并命名为 eval_exp4.m:
Expression = {'zeros', 'ones', 'rand', 'magic'}; Num = 2; Output = []; for i=1:length(Expression) Output = [Output eval([Expression{i}, '(', num2str(Num), ')'])]; end Output运行后得到如下结果:
Output = 0 0 1.0000 1.0000 0.0318 0.0462 1.0000 3.0000 0 0 1.0000 1.0000 0.2769 0.0971 4.0000 2.0000