我有这个函数需要一个字符串作为输入。如何将字符串转换为非字符串在matlab中
例如它需要handles.f = 'X^2'
,但我想handles.f = X^2,这样以后我就可以做F(X)= handles.f
function edit1_Callback(hObject, eventdata, handles)
handles.f = (get(hObject,'String'))
handles.f
area = rect(handles.f,handles.u,handles.l,handles.n)
guidata(hObject,handles)
功能:
function [ s ] = rect(f,u,l,n)
syms x;
f(x) = f;
h =(u-l)/n
z = l:h:u;
y = f(z)
s = 0;
for i=1:n
s = s+y(i);
end
s = h*s;
end
当我打电话从命令提示此功能是这样的: RECT(X^2,5,1,4)
它工作正常 但是,当我从gui调用这个时会出错。
这是我的错误:
Error using sym/subsindex (line 1558)
Indexing input must be numeric, logical or ':'.
Error in rect (line 8)
f(x) = f;
在这里工作。 @rayryeng,你可以通过使用'str2func'来避免'eval':'handles.f = str2func(['@(x)'handles.f])' – 2015-04-02 04:15:31
@Luis Mendo我也试过,它不工作。 – user4129542 2015-04-02 04:17:43
@LuisMendo - 啊非常好。谢谢你的提示! – rayryeng 2015-04-02 04:20:24