title subplots within a for loop

58 次查看(过去 30 天)
Hello,
I am trying to make a figure with subplots from a for loop. I have been successful, however when I want to assign a title to each run and thus subplot, the figure that matlab is plotting is very strange.
for ll= L(irun)
Ax= z(:,1) + l(1)*z(:,3);
Ay= z(:,2) - l(3)*z(:,3);
figure(10)
hold on
subplot(7,1,irun);
title (ll,"(m)")
hold on
plot(t,Ax)
hold on
plot(t,Ay)
hold on
legend('X Direction (m)', 'Y Direction (m)')
hold on
sgtitle(' Leg A Motion At Different Deck Heights')
end
This is what it is giving me but it should give me the figure below with titiles starting from 20 through to 50. The title below comes from commenting the line:
title (ll,"(m)")
Any advice would be greatly appreciated.
Thank you.

采纳的回答

Voss
Voss 2022-11-17
移动:Voss 2022-11-17
How about if you try
title(ll + "(m)")
  2 个评论
Maximilian
Maximilian 2022-11-17
移动:Voss 2022-11-17
Great thank you. That worked!
Voss
Voss 2022-11-17
编辑:Voss 2022-11-18
You're welcome!

请先登录,再进行评论。

更多回答(1 个)

Jan
Jan 2022-11-17
编辑:Jan 2022-11-17
Avoid the overkill of hold on commands. One per subplot is sufficient.
What is the purpose of the "ll" here:
title(ll,"(m)")
^^
? What does "titles starting from 20 through to 50" mean?
What is irun and L?
for ll= L(irun)
Try this:
for k = 1:7
subplot(7,1,k);
plot(1:10, rand(1, 10));
hold on
title("Plot " + k)
end
  4 个评论
Image Analyst
Image Analyst 2022-11-17
Did you try
figure(10);
for ll= L(irun)
Ax= z(:,1) + l(1)*z(:,3);
Ay= z(:,2) - l(3)*z(:,3);
subplot(7,1,irun);
hold on
plot(t,Ax)
plot(t,Ay)
caption = sprintf('%d meters', ll);
title (caption,"(m)")
legend('X Direction (m)', 'Y Direction (m)')
end
sgtitle('Leg A Motion At Different Deck Heights');
Maximilian
Maximilian 2022-11-18
I have managed to fix the problem.
Thank you

请先登录,再进行评论。

类别

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

标签

产品


版本

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by