我正在尝试在MATLAB中创建一个GUI应用程序,它从文本框(edit1)中获取表达式,然后在静态文本(text2)中打印该表达式的派生。这是我尝试过的:
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(~, ~, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
equation = get(handles.edit1, 'String');
y = eval(equation);
derive_func = diff(y, 'x');
set(handles.text2, 'String', derive_func);
代码有问题吗?
答案 0 :(得分:0)
听起来你试图象征性地区分用户输入字符串与变量符号变量' x'。但是,在回调函数的上下文中,没有定义符号变量x。对我来说(使用新发布的MATLAB R2014a和符号数学工具箱),添加行
syms('x')
在开头(假设方程字符串包含类似' x ^ 2')的回调函数并转换" derive_func'在调用set函数之前进入chararcter数组(使用char)使代码工作。
检查online doc of MATLAB以获取有关符号表达式的更多详细信息。