将变量标记位置应用于matlab图

时间:2014-01-07 15:59:33

标签: matlab image-processing plot subplot

我在matlab中遇到了问题。我想绘制一个有5个图的图。让我来看看他们。 每个数据的x轴为1:500。

对于图1到3,我想在每10个值之后放置标记,而对于图4到5,我想在每5个值之后放置标记。有可能吗?

我按照这样的代码:

figure,
set(gcf, 'Position', get(0,'Screensize')); % Maximize figure.
set(gcf,'Color','white');
plot(ObjVal1(1:10:end),'*r','LineWidth',3);
hold on;
plot(ObjVal2(1:10:end),'-.b','LineWidth',3);
plot(ObjVal3(1:10:end),'+-k','LineWidth',3);
plot(ObjVal4(1:5:end),'sm','LineWidth',3);
plot(ObjVal5(1:5:end),'.b','LineWidth',3);
hold off;
title({'Fitness Value'},'FontWeight','bold','FontSize', 12,'Color','black');
xlabel('Fitness Value --->','FontWeight','bold','FontSize', 12,'Color','black');
ylabel('Iterations --->','FontWeight','bold','FontSize', 12,'Color','black');
legend('CV GDS','CV Momentum','CV Exct LS','CV Back Track','CV Conjugate GDS');

然后我得到这样的输出:

enter image description here

问题在图片中非常明显。对于50个值给出1-3的图,因为每10次迭代获取子图,而对于100个值给出第4和第5个图,因为每5次迭代获取子图。我不想这样做。基本上我想要所有值的绘图,但是在绘图1-3的每10次迭代中放置标记,对于绘图4-5,每次5次迭代。

提前感谢大家的帮助!

1 个答案:

答案 0 :(得分:1)

使用plot的第一个参数指定标记的x轴位置:

plot(1:10:numel(ObjVal3), ObjVal3(1:10:end),'+-k', 'LineWidth', 3);
plot(1:5:numel(ObjVal4), ObjVal4(1:5:end), 'sm', 'LineWidth', 3)