Why is one of my tiled plots not being displayed? MATLAB UI App Designer

23 次查看(过去 30 天)
Hi there,
I am new to the App Designer and am trying to make an app out of existing code of mine. I have 4 tiled plots in a panel in my UI, where 3 are properly displayed while the 4th is not. The title and axis lables are displayed for the 4th graph but not the curve. In trouble shooting, I have writen a line to display the 4th graph in its own figure window, and it works and is plotted as I expect. I am not sure why I cannot get it to plot in the UI. I have included a screen shot of the graphs as well as my code for this section.
Any help would be appreciated!
%collecting displacement data into single matrix
Cam_Displacement = [Rise_Segment, dwellA, Fall_Segment, dwellB];
%differentiation
%works fine
theta = linspace(0,360,length(Cam_Displacement));
velocity = diff(Cam_Displacement(:))./diff(theta(1:length(theta)-1));
acceleration = diff(velocity)./ diff(theta(1:length(theta)-1));
jerk = diff(acceleration)./diff(theta(1:length(theta)-1));
%prints polar plot to panel in UI
%works fine
p = polaraxes(app.CamProfilePanel);
polarplot(p,Cam_Displacement)
%Plotting SVAJ curves
t = tiledlayout(app.SVAJPlotsPanel,4,1);
%works fine
ax1 = nexttile(t);
plot(ax1,theta,Cam_Displacement,'b')
axis auto;
xlim(ax1,[0 360]);
xlabel(ax1,'Degrees');
ylabel(ax1,'in');
title(ax1,'Displacement');
%works fine
ax2 = nexttile(t);
plot(ax2,theta(1:length(theta)-1),velocity,'r');
axis auto;
xlim(ax2,[0 360]);
title(ax2,'Velocity')
ylabel(ax2,'in/sec')
xlabel(ax2,'Degrees')
%works fine
ax3 = nexttile(t);
plot(ax3,theta(1:length(theta)-2),acceleration,'g');
axis auto;
xlim(ax3,[0 360]);
title(ax3,'Acceleration');
ylabel(ax3,'in/sec^2');
xlabel(ax3,'Degrees');
%this is the plot that I am not getting to show up
ax4 = nexttile(t);
plot(theta(1:length(theta)-3),jerk,'c')
axis auto;
xlim(ax4,[0 360]);
title(ax4,'Jerk')
ylabel(ax4,'in/sec^3')
xlabel(ax4,'Degrees')
%this is the validation plot which shows up correctly in its own figure
figure(1)
plot(jerk)
Here are the images of what my program is outputting. As you can see there is no curve in the jerk plot:
This is my standalone plot which is working as expected:
Perhapse this is a very simple mistake and I am just missing something in my code. Thanks again.

采纳的回答

Adam Danz
Adam Danz 2021-1-20
plot(ax4,theta(1:length(theta)-3),jerk,'c')
% ^^^ you forgot this part

更多回答(1 个)

Kyle McLaughlin
Kyle McLaughlin 2021-1-20
Im sorry to have posted this and made people look at it, I figured out my issue. I am missing 'ax4' when I call the plot function for that particular graph. Not sure if I just delete this or not now, but what I can say is it pays to get up and walk away then come back to code after a half hour or so!
Addendum:
%this is the plot that I am not getting to show up
ax4 = nexttile(t);
%adding in ax4 before theta fixes it
plot(ax4,theta(1:length(theta)-3),jerk,'c')
axis auto;
xlim(ax4,[0 360]);
title(ax4,'Jerk')
ylabel(ax4,'in/sec^3')
xlabel(ax4,'Degrees')

类别

Help CenterFile Exchange 中查找有关 2-D and 3-D Plots 的更多信息

标签

产品


版本

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by