Octave / Matlab - 用现有图表绘制数字

时间:2018-04-06 14:43:13

标签: matlab octave matlab-figure

我的Octave工作流程如下:

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

<div id="nf-field-24-wrap" class="field-wrap textbox-wrap nf-fail nf-error" data-field-id="24">

    <div class="nf-field-label">
        <label for="nf-field-24" class="">Company Name <span class="ninja-forms-req-symbol">*</span> </label>
    </div>

    <div class="nf-field-element">
        <input value="" class="ninja-forms-field nf-element" id="nf-field-24" name="nf-field-24" aria-invalid="true" aria-describedby="nf-error-24" type="text">
    </div>


</div>

现在,我试图做的是一个脚本调用所有这些函数,收集所有数字,并试图将它们全部组合在一个图中(即,生成的每个图应该是一个子图中的一个子图。新图)。

所以,问题是:

  • 是否可以将绘图处理程序传递给function [h,p] = processData_and_generatePlot_A(datainput) %%..... h = figure(); p = plot(h, ...) %%.... end 函数,以便打印图而不是生成新图?
  • 如果没有,有没有办法将现有的地块插入新图中?

提前致谢

1 个答案:

答案 0 :(得分:2)

实际上存在用于合并不同图中的图的方法作为新图的子图。让我感到震惊的是你有&#34;许多图表来生成&#34; ,所以你必须定义一个标准,将现有的图分成N个数字,以避免填鸭所有这些都成了一个数字。

前面提到的方法涉及copyobj函数的使用,这是一个可以根据需要轻松修改的示例:

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);