Filter löschen
Filter löschen

Last color on legend does not match last color on stem plot, after manually setting color in for loops.

25 Ansichten (letzte 30 Tage)
This code generates stem plots for functions of number sequences. The last two plots require for loops to shift the sequences. The plot colors are hard coded in each loop to keep the same color. This works for the plots, but the legend shows the last two funcitons as both green when the last one should be purple. What might be causing this and is there a work-around?
x = [0,1,2,3,4,-4,-3,-2,-1,0];
y = [0,0,-1,0,1,0,-1,0,1,0,0];
longest_sequence = max(numel(x),numel(y));
figure(1)
hold on
stem(x,'LineWidth',2.0)
stem(5*x,'LineWidth',2.0)
stem(y,'LineWidth',2.0)
for n = 2:9
stem(n-1,y(n+1),'LineWidth',2.0, 'Color','#77AC30')
end
for n = 2:9
stem(n-1,-2*x(n-1)+3*y(n+2),'LineWidth',2.0,'Color','#7E2F8E')
end
hold off
title('Problem 1')
xlim([0 longest_sequence+1])
xticks(0:1:11)
yticks(-20:1:20)
xlabel('Time')
ylabel('Amplitude')
set(gca,'FontWeight','bold')
legend('x','5x','y','y(n+1)','-2x(n-1)+3y(n+2)')

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 25 Jun. 2024 um 18:15
for n = 2:9
stem(n-1,y(n+1),'LineWidth',2.0, 'Color','#77AC30')
end
That generates multiple plot objects, each with green color.
legend('x','5x','y','y(n+1)','-2x(n-1)+3y(n+2)')
That assigns legends to consecutive plot objects.
Your mistake was in thinking that the stem() within the for loop would all get grouped into the same legend.
  2 Kommentare
Walter Roberson
Walter Roberson am 25 Jun. 2024 um 18:16
x = [0,1,2,3,4,-4,-3,-2,-1,0];
y = [0,0,-1,0,1,0,-1,0,1,0,0];
longest_sequence = max(numel(x),numel(y));
figure(1)
hold on
H1 = stem(x,'LineWidth',2.0);
H2 = stem(5*x,'LineWidth',2.0);
H3 = stem(y,'LineWidth',2.0);
for n = 2:9
H4 = stem(n-1,y(n+1),'LineWidth',2.0, 'Color','#77AC30');
end
for n = 2:9
H5 = stem(n-1,-2*x(n-1)+3*y(n+2),'LineWidth',2.0,'Color','#7E2F8E');
end
hold off
title('Problem 1')
xlim([0 longest_sequence+1])
xticks(0:1:11)
yticks(-20:1:20)
xlabel('Time')
ylabel('Amplitude')
set(gca,'FontWeight','bold')
legend([H1, H2, H3, H4, H5], {'x','5x','y','y(n+1)','-2x(n-1)+3y(n+2)'})

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte


Version

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by