我有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点?
我现在得到的例子:
很明显,现在它在我的图例中没有显示Jet
应该显示的12种颜色。
谢谢。
编辑:
使用以下方法解决问题:
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)