1
我在matlab中遇到了問題。我想繪製一個有5個圖的圖。讓我通過他們。每個數據的x軸爲1:500。將變量標記位置應用於matlab圖
對於圖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');
然後我得到的輸出是這樣的:
問題從圖片中是相當明顯的。由於子圖是每10次迭代得到的,所以給出1-3的曲線圖,而對於每5次迭代得到的子曲線圖給出第四和第五曲線圖的100個值。我不想這樣做。基本上我想要所有值的圖,但標記放置在圖1-3的每10次迭代中,並且在圖4-5的每次迭代中放置標記。
非常感謝大家的幫助!
謝謝你很多。真的行。但是,您能否向我解釋一下代碼片段! – roni
關於你的代碼,我唯一改變了的地方是我已經在'plot'中包含了第一個參數(在第一種情況下是'1:10:numel(ObjVal3)')。該參數指定標記的x軸位置(在這種情況下:1,11,21,...)。在您的原始代碼中,您沒有指定該參數,這會導致Matlab始終使用1,2,3 ...作爲x軸位置 –
感謝您的清晰解釋 – roni