2014-09-05 120 views
0

多个图形我想要绘制在以下方式不同的窗口了多套:绘制在MATLAB

Qa_plot = (start:step:stop); 

for i = 1 : nImg 
    custom_title = strcat(custom_title, int2str(i)); 
    figure; 
    hold on 
    xlabel('Qa') 
    ylabel('TV') 
    title(custom_title) 
    plot(Qa_plot, cell2mat(TV_original), '--r', 'userdata', '-- original') 
    plot(Qa_plot, cell2mat(TV_attacked), '-b', 'userdata', '- dithered') 
    legend(get(gca, 'children'), get(get(gca, 'children'), 'userdata')) 
end 

然而,也有重叠在一起在执行同一图中多个图形。我如何在每次迭代时创建一个单独的图形/图形,而不包含以前的信息?

+1

在循环中调用'figure'应该创建不同的数字;出于好奇,它是否会改变,如果你评论传说的呼吁? TV_original和TV_attacked都不使用循环索引“i”是否正常? – 2014-09-05 11:37:08

+0

这是问题所在。 – Sebi 2014-09-05 12:01:14

+1

传说你的意思是?很高兴知道分享的感谢! – 2014-09-05 12:10:42

回答

0

使用“figure”后跟“hold on”命令应该在循环的每次迭代中创建一个新图。如果每个轴/图中有两个以上的图(您有两个图表调用),则一个图表调用会创建多个图/图。当cell2mat(...)产生一个矩阵而不是一个向量时,情况就是这样,在这种情况下,每一列被绘制为一个单独的图。如果真的是这个问题,你可以选择要绘制哪一列

data = cell2mat(...); 
plot(Qa_plot, temp(:,columnIdx), '--r', ....)