【问题标题】:Plotting from different matlab files从不同的 matlab 文件中绘图
【发布时间】:2012-05-21 04:57:37
【问题描述】:

我有四个 matlab 代码,每个代码都生成一个图,如何能够将所有图组合成一个图以显示每个图的过渡?

【问题讨论】:

  • 我们需要更多信息。你能举一个简短的例子来说明每个文件是如何产生它的情节的吗?你能描述一下你希望如何组合这些图(都在相同的轴上,还是在不同的轴上?)
  • y5=[ku1;ku2;ku3;ku4;ku5;ku6;ku7;ku8;ku9]; x5=[5;10;15;20;25;30;35;40;45];图(3)绘图(x5,y5,'ok');这就是来自一个matlab代码的图,现在我想将来自不同文件的所有四个图合并到一个中,因为这是一个进程,我想显示该进程及其在同一轴上的相同图和相同的X和Y值。我无法将所有四个代码组合在一起,因为它们都加载了不同的 txt 文件,

标签: matlab plot


【解决方案1】:

如果你想在同一个图形上绘制多条线,你可以使用hold on 例如:

plot(x1,y1,'ok');    
hold on
plot(x2,y2,'or');

如果您说它们都形成一行,请尝试像这样连接您的输入向量:

%Mock input
x1 = 0:9;
x2 = 10:19;
x3 - 20:29;
x4 = 30:39;
y1 = 2*x1 -20;
y2 = 2*x2 -20;
y3 = 2*x3 -20;
y4 = 2*x4 -20;
%Example of plotting concatenated vectors
plot( [x1;x2;x3;x4], [y1;y2;y3;y4]);

【讨论】:

  • 是的,我忘了说“等等”。谢谢!
【解决方案2】:

如果您希望所有四个都在同一个数字上(例如图 1),那么您可以这样做:

%% In PlotCode1.m
figure(1)
hold on
...%your plotting code

%% In PlotCode2.m
figure(1)
hold on
...%your plotting code

如果您在不关闭或清除图 1 的情况下运行每个 PlotCode.m 文件,那么所有行都将显示在同一个图上。

或者,您可以将每个不同的绘图文件转换为以图形编号作为输入的函数。例如:

   % In PlotCode1.m
   function PlotCode1(num)
     figure(num)
     hold on
     %Your plotting code

% In PlotCode2.m
  function PlotCode2(num)
     figure(num)
     hold on
     %Your plotting code

现在您可以在一个脚本中调用这些函数:

 fignum = 2;
 PlotCode1(fignum)
 PlotCode2(fignum)

现在一切都将绘制在图 2 上。

【讨论】:

  • 嗨@kitchenette,我尝试了不清除和关闭任何数字的方法,但它确实有效,请尝试更好地向我解释第二种方法,感谢四个代码是y5=[ku1;ku2;ku3;ku4;ku5;ku6;ku7;ku8;ku9]; x5=[5;10;15;20;25;30;35;40;45]; figure(3) plot(x5,y5,'ok'); 它只是相同的代码如上所述,所有四个 m 文件谢谢
  • @user1407074-- 我猜你有 5 组坐标:x1,y1 ... x5,y5 并且你想在同一个图中将它们相互绘制。那么如何将所有 x 和所有 y 堆叠成矩阵,使 x1 在第一行,x2 在第二行,等等... X = [x1'; x2'; ... ;x5']; Y = [y1';y2';...;y5'],然后做 plot(X,Y)。
猜你喜欢
  • 2018-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-15
  • 1970-01-01
  • 1970-01-01
  • 2013-06-11
  • 2013-11-05
相关资源
最近更新 更多