A problem using the app designer
3 ビュー (過去 30 日間)
古いコメントを表示
Hassen Mohamed Yousif Abdelatif
2021 年 12 月 8 日
コメント済み: Abolfazl Chaman Motlagh
2021 年 12 月 8 日
I have a problem with the app designer . The graph instead of appearing in the app , it appears in a new window as the attached photo shows
2 件のコメント
Steven Lord
2021 年 12 月 8 日
Please show us the code you wrote that tries to create that plot in the app.
採用された回答
Abolfazl Chaman Motlagh
2021 年 12 月 8 日
in PlotFitButtonPushed function which you plot your graphs, by using figure you create new figure out of your app.UIFigure. use axes(app.UIAxes) to select the Axes in app as current Axes. or just add Axes to plot.
function PlotFitButtonPushed(app, event)
% Create a new vector that starts at 0 and goes
% up to 7 in steps of 0.5. Assign to a column vector voltage_fit.
app.voltage_fit = 0:0.5:7;
app.voltage_fit = app.voltage_fit';
% Create a new vector, displacement_fit, for the line of
% best fit. It should be a column vector the same length as voltage_fit
% found using the calibration equation.
app.displacement_fit = polyval(app.coeffs, app.voltage_fit);
% Plot the measured displacement against voltage that came from
% the file, and the modelled line of best fit on the same figure.
% Label appropriately.
axes(app.UIAxes)
plot(app.UIAxes,app.voltage, app.displacement)
% or just plot(app.voltage, app.displacement) because you make
% app.UIAxes curent Axes
xlabel(app.UIAxes,'voltage (v)')
ylabel(app.UIAxes,'displacement (mm)')
hold(app.UIAxes,'on')
% or just hold on
plot(app.voltage_fit, app.displacement_fit)
legend('Raw data', 'Line fit')
hold(app.UIAxes,'off')
end
2 件のコメント
Abolfazl Chaman Motlagh
2021 年 12 月 8 日
Happy to Help.
Yes you can just write on it. and also if you want to change the text in code or during process you can use Value field to edit :
app.TextArea.Value = {'Sample Text' ; 'Sample Text 2'};
this will write 2 lines for example.
その他の回答 (1 件)
Peter Bonavita
2021 年 12 月 8 日
Hi Hassen,
I understand your app generates a plot, but the plot appears in a figure outside the app. In your app's call to plot, you can specify the axis where you want the plot to appear.
Check out lines 70-71 of the .MLAPP file from this example. You can open the app using this command, then view the code shown below in the code view:
>> openExample('matlab/MortgageCalculatorExample')
Here's the code, in this case it shows the plot targets the axis at app.PrincipalInterestUIAxes
% Plot the principal and interest
plot(app.PrincipalInterestUIAxes,(1:nper)',principal, ...
(1:nper)',interest);
legend(app.PrincipalInterestUIAxes,{'Principal','Interest'},'Location','Best')
xlim(app.PrincipalInterestUIAxes,[0 nper]);
I wasn't able to reproduce using your app but it looks like you'll just need to add app.UIAxes in your calls to plot, something like:
plot(app.UIAxes, app.voltage, app.displacement)
Hope this helps,
Peter
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Develop Apps Using App Designer についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!