如何将matlab中多幅图合成为一幅图

各位大神,小弟已经用Matlab画好了6幅fig格式的图,现在由于论文需要,想把这6幅图合成到一幅图中,做出来的效果就像是用subplot画的3*2的分布格式。由于我这程... 各位大神,小弟已经用Matlab画好了6幅fig格式的图,现在由于论文需要,想把这6幅图合成到一幅图中,做出来的效果就像是用subplot画的3*2的分布格式。由于我这程序运行时间比较漫长,不想重新运算去画了,有没有什么现成的方法直接把这6幅图合成到一幅图中,万分感谢!!! 展开
 我来答
百度网友a2546cf
高能答主

2019-12-12 · 有什么不懂的尽管问我
知道小有建树答主
回答量:1610
采纳率:100%
帮助的人:38.6万
展开全部

1、首先,我们随机产生三组范围不同的数据,数据量都为500,他们的边界分别为[10,15],[23,38],,[38,58]。方法如下:

x1=10+5*rand(500,1);

x2=23+15*rand(500,1);

x3=38+20*rand(500,1);

2、下面,我们要分别画出x1,x2,x3对应的曲线,用MATLAB的内置函数plot进行操作,分别用三个plot进行绘图,结果如下:

plot(x1,'r');

plot(x2,'b');

plot(x3,'g');

3、可以看到,图中只有一条曲线,并没有其他两条曲线。这是因为后面plot的语句画的图会将前面plot画的图覆盖掉。因此我们需要用一个语句来保留前面所绘制的图,在需要保留的图的后面加一句hold on,即可将该图保留,使它不被后面的图所覆盖,具体语法如下:

plot(x1,'r');

hold on

plot(x2,'b');

hold on

plot(x3,'g');

4、这样就可以将三条曲线画在一张图上,为了区别,要分别给这三条曲线定义不同的颜色。

5、为了图的美观,我们可以用grid on添加网格线,还需要添加横纵坐标轴标题。方法如下:

xlabel('样本序列');

ylabel('值');

6、除此之外,因为我们画的是多条曲线,因此还需要添加图例,语法如下:

legend('变量1','变量2','变量3')

括号里面按照画图的顺序分别写每条曲线代表的意义即可。

7、最后这样就完成了。

啊七小0p
推荐于2016-06-10 · TA获得超过9.1万个赞
知道大有可为答主
回答量:3.7万
采纳率:89%
帮助的人:5633万
展开全部
可以采用subplot函数。具体解释subplot(m,n,p);先指定将一个图分为m行n列,当前画图为p。以下以画正弦函数,余弦函数,一次函数和二次函数在【-3,3】范围的图像为例说明如何使用subplot函数。
代码:
>> subplot(2,2,1)
>> plot(-3:0.01:3,sin(-3:0.01:3))
>> subplot(2,2,2);
>> plot(-3:0.01:3,cos(-3:0.01:3))
>> subplot(2,2,3);
>> plot(-3:0.01:3,-3:0.01:3)
>> subplot(2,2,4);
>> plot(-3:0.01:3,(-3:0.01:3).^2)
结果:
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a4ee99443
2014-12-19 · TA获得超过494个赞
知道小有建树答主
回答量:388
采纳率:25%
帮助的人:161万
展开全部
fig 文件里面把数据提取出来就可以了。
然后在新建的figure中重新画。
不需要重新计算的。
追问
怎么取呢
追答

提取X Y Z

可以在必须在上图的状况下运行

x1=get(gco(gcf),'XData');y1=get(gco(gcf),'YData');z1=get(gco(gcf),'ZData');

得到你需要的值

同样的道理,分别取出其他的。

然后,直接画图

我的代码是,可以参考

  h1=gcf;x1=get(gco(h1),'XData');y1=get(gco(h1),'YData');z1=get(gco(h1),'ZData');

  h2=gcf;x2=get(gco(h2),'XData');y2=get(gco(h2),'YData');z2=get(gco(h2),'ZData');

  h3=gcf;x3=get(gco(h3),'XData');y3=get(gco(h3),'YData');z3=get(gco(h3),'ZData');

  h4=gcf;x4=get(gco(h4),'XData');y4=get(gco(h4),'YData');z4=get(gco(h4),'ZData');


  figure(5);

  subplot(221);mesh(x1,y1,z1);

  subplot(222);mesh(x2,y2,z2);

  subplot(223);mesh(x3,y3,z3);

  subplot(224);mesh(x4,y4,z4);

最终成合成图

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
墨紫音
2015-10-07 · TA获得超过1.8万个赞
知道大有可为答主
回答量:2390
采纳率:56%
帮助的人:1047万
展开全部
matlab打开图a和b,然后把b全选copy到图a上,然后拖。
如果坐标单位相同的话,在画完第一个图后面加一条指令:hold on。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sun33797966
2022-10-20
知道答主
回答量:1
采纳率:0%
帮助的人:312
展开全部
您好,请问您的这个问题解决了吗?我想向您咨询一下怎样解决。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式