在matlab中绘制多个图形

时间:2014-09-05 11:24:51

标签: image matlab image-processing plot

我试图通过以下方式在不同的窗口中绘制多个集合:

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 个答案:

答案 0 :(得分:0)

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

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