首页 > 编程笔记 > MATLAB笔记 阅读:53

MATLAB eval()函数的用法(附带实例)

MATLAB 中的 eval() 函数可以与文本变量一起使用,实现有力的文本宏工具,其调用格式为:
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

相关文章