【问题标题】:Plotting multiple graphs in matlab在matlab中绘制多个图
【发布时间】:2014-09-05 11:24:50
【问题描述】:

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

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

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

【问题讨论】:

  • 在循环中调用“figure”应该创建不同的图形;出于好奇,如果您评论对传奇的调用,它会改变吗? TV_original 和 TV_attacked 都不使用循环索引“i”是否正常?
  • 你的意思是对传奇的召唤?很高兴知道谢谢分享!

标签: image matlab image-processing plot


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多