Matlab:从'编辑'(文本框输入)到数学表达

时间:2015-03-30 19:37:03

标签: matlab

我有uicontrol类型'edit',我希望能够在其上编写类似sin(2*10*pi*t)-sin(2*15*pi*t)的内容,然后将此字符串转换为变量F的表达式,例如:{ {1}}之前已声明F=sin(2*10*pi*t)-sin(2*15*pi*t);

t

为了将字符串转换为表达式,我该怎么做?

2 个答案:

答案 0 :(得分:1)

您可以通过not recommended避免使用eval(通常为str2func):

str = get(uicontrol_data, 'String'); %// reads string grom uicontrol
f = str2func(['@(t)' str]);  %// creates anonymous function and function handle
F = f(t); %// evaluates that function for the previously declared variable `t`

答案 1 :(得分:0)

您必须使用内置的eval功能。例如:

string = get(uicontrol_data, 'String');
eval(['F = ' string ';']);   % Equivalent of F = ...; 

最佳,