Simple GUI program performs simple math, but returns two numbers?

I have created a simple MATLAB GUI, consisting of two edit text boxes, and a push button. The first text box is an input space, the button runs code to make a calculation, and the second text box is for outputting the code. The code itself simply multiplies and divides the input by a few numbers (a conversion of sorts I derived on paper), and should output the correct value, but instead it outputs 2 numbers, and I have no idea why. Has anyone else ever had this problem?
Update: The same code works perfectly in a standalone file.

2 件のコメント

OCDER
OCDER 2017 年 10 月 31 日
It'll be pretty hard for us to debug anything without your code. Can you attached the code: .m and .fig files?
Matt Whitfield
Matt Whitfield 2017 年 10 月 31 日
Here you go

サインインしてコメントする。

 採用された回答

Geoff Hayes
Geoff Hayes 2017 年 10 月 31 日

1 投票

Matt - the problem is that the input text is a string and so you need to convert it into a number before you start to manipulate it
function pushbutton1_Callback(hObject, eventdata, 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)
input = str2double(get(handles.edit1,'string'));
x = input * 1609.35;
y = x / 3600;
z = y / 0.75;
set(handles.edit2,'string',num2str(x));
Note how we use str2double to do the conversion and then num2str to convert the x to a string that we set in the edit2 text control.
(I suspect that you were entering in a two digit number which, without the conversion, is a 1x2 char array. When you multiply, you get two numbers that you would then display in the edit control.)

2 件のコメント

OCDER
OCDER 2017 年 10 月 31 日
Also, look at the output. Do you mean return x or z?
%set(handles.edit2,'string',x); %Do you mean z???
%set(handles.edit2,'string',num2str(z)); %< HERE! use num2str(z)
Matt Whitfield
Matt Whitfield 2017 年 10 月 31 日
Yes I meant z, I was testing to see where it broke and forgot to change it back before testing. Thanks!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で MATLAB についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by