倍频程/Matlab-现有绘图的子绘图图形

倍频程/Matlab-现有绘图的子绘图图形,matlab,octave,matlab-figure,Matlab,Octave,Matlab Figure,我的倍频程工作流程如下所示: 我有大量的数据要处理,还有大量的绘图要生成。对于每个地块, 我有一个函数,可以完成所有工作,生成自己的绘图,并返回此绘图的句柄以供将来修改(如果需要)。大概是这样的: function [h,p] = processData_and_generatePlot_A(datainput) %%..... h = figure(); p = plot(h, ...) %%.... end 现在,我要做的是一个脚本调

我的倍频程工作流程如下所示:

我有大量的数据要处理,还有大量的绘图要生成。对于每个地块, 我有一个函数,可以完成所有工作,生成自己的绘图,并返回此绘图的句柄以供将来修改(如果需要)。大概是这样的:

function [h,p] = processData_and_generatePlot_A(datainput)
       %%.....
       h = figure();
       p = plot(h, ...)
       %%....
end
现在,我要做的是一个脚本调用所有这些函数,收集所有图形,并尝试将所有图形组合到一个图形中(即,生成的每个绘图都应该是新图形中的子绘图)

因此,问题是:

  • 是否可以将绘图处理程序传递给
    子绘图
    函数,以便打印绘图而不是生成新的绘图
  • 如果没有,是否有办法将现有图插入新图形

提前感谢

将不同图形中的图合并为新图形的子图的方法实际上存在。令我吃惊的是,您有“许多要生成的绘图”,因此您必须定义一个标准,将现有绘图拆分为
N
图形,以避免将所有绘图塞进单个图形中

上述方法涉及函数的使用,下面是一个示例,您可以根据需要轻松修改以下内容:

f1 = figure();
x1 = -10:0.1:10;
y1 = sin(x1);
p1 = plot(x1,y1,'r');

f2 = figure();
x2 = -10:0.1:10;
y2 = cos(x2);
p2 = plot(x2,y2,'r');

pause(5);

f3 = figure();
sub1 = subplot(1,2,1);
sub2 = subplot(1,2,2);

copyobj(p1,sub1);
delete(f1);

copyobj(p2,sub2);
delete(f2);

问题是,您正在生成一个新的数字。在这种情况下(至少在将来),您可以给出最好的建议,明确区分
processData
generatePlot
。你的生活会更轻松。一般来说,如果您可以将函数描述为
do\u Y\u和\u X
,那么它的设计可能并不好。您需要函数
X
Y
这是众所周知的问题,使用非常旧的代码,没有人知道是谁制作的,但您必须使用。我只是想收集所有相关的图表,这样现在就更有意义了。我知道这种感觉,因为它占据了我80%的工作时间。要有耐心,尽量优化你能做的。