matlab exe文件中的按钮不起作用

时间:2012-12-31 10:54:41

标签: matlab matlab-figure matlab-guide

我开发了一个Matlab GUI程序,它有四个编辑框和一个一个按钮;当我使用Matlab软件运行它时,我的应用程序正常工作,但在将其转换为exe文件(独立)后,按钮不起作用,意味着它不会在“结果”编辑框中显示输出。所以有什么问题? 这是我的按钮代码:

function btnCal_Callback(hObject, eventdata, handles)
a=str2num(get(handles.txbLow,'string'));
b=str2num(get(handles.txbHi,'string'));
f=get(handles.txbForm,'string');
x=0.5*((b-a)*(-1*(3/5)^0.5)+b+a);
g=subs(f,'x',x);
sum=(g)*(5/9);
x=0.5*(b+a);
g=subs(f,'x',x);
sum=sum+(g)*(8/9);
x=.5*((b-a)*((3/5)^.5)+b+a);
g=subs(f,'x',x);
sum=sum+g*(5/9);
result=sum*((b-a)/2);
set(handles.txbResult,'string',result);

2 个答案:

答案 0 :(得分:0)

首先,我对

感到困惑
result=sum*((b-a)/2);   % "result" is numeric
set(handles.txbResult,'string',result);   % "result" should be string

接下来,就像一个提示。要“调试”已部署的代码,请尝试从cmd启动exe,在这种情况下,您会在那里看到一些消息,并且它们可能有所帮助。

答案 1 :(得分:0)

你的'结果'需要是double,char或cell。你可以通过例如这样做。

set(handles.txbResult,'String',char(result);

但是:我在Mac上使用非常相似的代码时出现了完全相同的问题。如果在Matlab中通过“run”执行,应用程序运行得非常好,但是一旦我将它编译成standalone.app,当按下按钮时会听到这个错误声音,没有其他事情发生。

尝试将'result'变量设置为“global”有助于为我编写的另一个程序解决这个问题(一个非常简单的“计算a + b”的东西),但不是针对提到的稍微复杂的代码(3代替2输入和3输出而不是1)。

正在运行的超级简单代码:

function pushbutton1_Callback(hObject, eventdata, handles) %the button to push
...some code...
global statText;
set(statText,'String',char(output));

function text1_CreateFcn(hObject, eventdata, handles) %the outputfield
global statText;
statText = hObject;