У меня есть for loop
, который разбрасывает все значения из матрицы, которая ниже требуемого значения.
for loop
выглядит следующим образом:
CM = jet(size(Length,1));
for i = 1:size(Length,1)
Legend{i} = ['test = ', num2str(CSpan(i,1)) ,'[mm]'];
end
figure
subplot(3,1,1)
for i = 1 : size(Length,1)
for j = 1 : size(Length,2)
hold on
if M_Roll(i,j) < Req_Moment && M_Roll(i,j) > 0
scatter(Length(i,j),M_Roll(i,j),'MarkerFaceColor',CM(i,:),'MarkerEdgeColor',CM(i,:))
end
end
end
grid on
legend(Legend,'Location','northwest','NumColumns',4)
title('Graph of Moment vs Length for Different','Interpreter','latex')
xlabel('Length [mm]','Interpreter','latex')
ylabel('Moment [N*m]','Interpreter','latex')
set(gca,'Fontsize',13)
ylim([0 Req_Moment + Req_Moment/10])
Теперь результатможет быть, что это разбросано где-то как 200 баллов.Легенда может отображать только 50 значений, и это означает, что цвет 50 легенд будет из первых 50 разбросанных.
Есть ли способ просто обозначить легенду всеми легендами, которые я хочу (которых в основном только 12), дажеесли на графике он рассеивает 200 очков?
Пример того, что я сейчас получаю:
![enter image description here](https://i.stack.imgur.com/n4893.png)
Понятно, что сейчасон не отображает 12 цветов в моей легенде, как должно было быть Jet
.
Спасибо.
РЕДАКТИРОВАТЬ:
Проблема решенаиспользуя следующее:
figure
subplot(3,1,1)
for i = 1 : size(Length,1)
for j = 1 : size(Length,2)
hold on
if M_Roll(i,j) < Req_Moment && M_Roll(i,j) > 0
h1 = scatter(Length(i,j),M_Roll(i,j),'MarkerFaceColor',CM(i,:),'MarkerEdgeColor',CM(i,:));
end
end
end
for i = 1:size(Length,1)
hold on
Legend{i} = ['test = ', num2str(CSpan(i,1)) ,'[mm]'];
h1(i) = scatter(NaN,NaN,'MarkerFaceColor',CM(i,:),'MarkerEdgeColor',CM(i,:));
end
grid on
legend(h1,Legend,'Location','northwest','NumColumns',4)