0

I developed a Matlab GUI program which it has four editbox & one pushbutton; my application works properly when I run it with Matlab software, but after converting it to exe file (standalone), the pushbutton doesn't work, means it doesn't show the output in 'Result' editbox. so what's the problem? here is my pushbutton code:

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);
4

2 回答 2

0

首先,我有点困惑

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

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

于 2013-01-15T11:27:54.253 回答
0

您的“结果”必须是双精度、字符或单元格。您可以通过例如

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

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

尝试将“结果”变量设置为“全局”有助于解决我编写的另一个程序的这个问题(一个非常简单的“计算 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;
于 2013-07-31T13:03:57.100 回答