How to get output multi from GUI ?

1 Ansicht (letzte 30 Tage)
Thapakorn Kongton
Thapakorn Kongton am 31 Mär. 2020
Beantwortet: Geoff Hayes am 1 Apr. 2020
Hello
following code. I want to get repeatable output from GUI for example
A = 2
B= 3
ans = 6
I want to type input again like
A = 5
B= 4
ans = 20
I want to get 6 and 20 out of Testcal2 function and save somewhere like workspace .
then i want ans array like this
ans_array = [6 20]
finally
i want to sum all variable in ans_array
sum(ans_array,'all')
Could you help me please ?
function Testcal2
fig = uifigure('Name','program');
fig.Position = [100 100 800 500];
A = uieditfield(fig,'Position',[20 300 100 22],'ValueChangedFcn',@multiply);
B = uieditfield(fig,'Position',[180 300 100 22],'ValueChangedFcn',@multiply);
anslabel = uilabel(fig,'Position',[500 300 100 15]);
btn = uibutton(fig,'push','Position',[400, 300, 60, 22],'ButtonPushedFcn', @showans);
function multiply(src, event)
global ans
var1 = str2double(A.Value)
var2 = str2double(B.Value)
ans = var1*var2;
end
function showans(src, event)
global ans
anslabel.Text = num2str(ans);
end
end
  2 Kommentare
Geoff Hayes
Geoff Hayes am 1 Apr. 2020
Thapakorn - why do you need to write the output to the workspace? Can't you just store the data to local variables (arrays) in your Testcal2 function and then write/save it to a mat file?
Thapakorn Kongton
Thapakorn Kongton am 1 Apr. 2020
Can you show me how to do this way ? @Geoff Hayes

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Geoff Hayes
Geoff Hayes am 1 Apr. 2020
Thapakorn - try the following code
function Testcal2
fig = uifigure('Name','program');
fig.Position = [100 100 800 500];
A = uieditfield(fig,'Position',[20 300 100 22],'ValueChangedFcn',@multiply);
B = uieditfield(fig,'Position',[180 300 100 22],'ValueChangedFcn',@multiply);
anslabel = uilabel(fig,'Position',[500 300 100 15]);
btn = uibutton(fig,'push','Position',[400, 300, 60, 22],'ButtonPushedFcn', @showans);
ans_array = []; % <---- nested function have access to this variable
function multiply(src, event)
var1 = str2double(A.Value)
var2 = str2double(B.Value)
ans_array(end+1) = var1*var2;
end
function showans(src, event)
anslabel.Text = num2str(ans_array(end));
save('Testcal2.mat', ans_array); % <----- save the answers to a mat file
end
end
Note how the ans_array is updated whenever multiply is called, and we save the results to a mat file whenever showans is called.

Kategorien

Mehr zu Variables finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by