MATLAB Answers

Legend in a "for loop"

1 view (last 30 days)
Paul Rogers
Paul Rogers on 10 Nov 2019
Commented: TADA on 11 Nov 2019
hi,
I need to insert a legend for each ii evalueted.
giri can change in size at every simulation.
for ii=1:length(giri)
figure(3);
plot(m(indice_m_0:loc(ii)),psic_pos(ii,indice_m_0:loc(ii)));
grid on
hold on
end

  0 Comments

Sign in to comment.

Answers (1)

Shubham Gupta
Shubham Gupta on 11 Nov 2019
Try :
for ii=1:length(giri)
figure(3);
plot(m(indice_m_0:loc(ii)),psic_pos(ii,indice_m_0:loc(ii)),'DisplayName',['ii = ',num2str(ii)]);
grid on
hold on
end
legend show

  5 Comments

Show 2 older comments
Paul Rogers
Paul Rogers on 11 Nov 2019
yes, but I don't know why, instead of the ii-value it shows chines letters.
I attached the file.
Walter Roberson
Walter Roberson on 11 Nov 2019
figure(3);
for ii=1:length(giri)
plot(m(indice_m_0:loc(ii)),psic_pos(ii,indice_m_0:loc(ii)),'DisplayName',sprintf('giri = %g',giri(ii)));
grid on
hold on
end
legend show
Change the %g format to whatever you need.
TADA
TADA on 11 Nov 2019
probably because of an implicit conversion from double to char
maybe this would work:
plot(m(indice_m_0:loc(ii)),psic_pos(ii,indice_m_0:loc(ii)),'DisplayName',['giri = ', num2str(giri(ii))]);
next time it would be better if you attach the data, without sample data helping you is pretty much guesswork...

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!