日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

使用Matlab将多个图形Figure文件合并

發(fā)布時(shí)間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Matlab将多个图形Figure文件合并 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

0. 原由

Matlab使用過程中,會(huì)遇到需要將多個(gè)圖形Figure文件合并成一個(gè)文件的需求,便于在一個(gè)坐標(biāo)軸內(nèi)對(duì)曲線進(jìn)行合并的顯示和比較。如下圖:分別使用P控制、PID控制、模糊PID控制、神經(jīng)網(wǎng)絡(luò)PID控制方法,得到了某系統(tǒng)的階躍響應(yīng)結(jié)果,希望將四種控制方法的階躍響應(yīng)結(jié)果合并到同一圖形Figure下。

希望合并后的結(jié)果:

1. 思路

Matlab提供了函數(shù)copyobj,可以復(fù)制圖形對(duì)象及其子級(jí),可以以此實(shí)現(xiàn)多個(gè)圖形Figure文件的合并。

copyobj(h,p) % 將圖形對(duì)象p復(fù)制到對(duì)象h中

具體步驟為:

  • 選定目標(biāo)坐標(biāo)軸(axes)對(duì)象h;
  • 獲取圖形Figure中各個(gè)坐標(biāo)軸(axes)對(duì)象中的曲線(Line)對(duì)象句柄hl和圖例(Legend)對(duì)象句柄hg;
  • 使用copyobj函數(shù)將曲線hl復(fù)制到目標(biāo)坐標(biāo)軸h中;
  • 為曲線對(duì)象添加圖例;
  • 將合并后的Figure圖形保存成.fig文件。

2. 函數(shù)

筆者使用Matlab軟件開發(fā)了函數(shù)CombFigs.m,實(shí)現(xiàn)多個(gè)圖形Figure文件的合并,簡(jiǎn)單易用,下面通過實(shí)例詳細(xì)演示。

function CombFigs(varargin) % CombFigs(varargin)將不同figures圖片合并到一個(gè)figure中 % 調(diào)用格式 % 極簡(jiǎn)方式: % CombFigs() 不帶任何輸入?yún)?shù),將當(dāng)前目錄下所有fig文件合并成一個(gè)fig文件 % 默認(rèn)合并后的fig文件名為 合并Figure文件.fig % 指定目標(biāo)fig文件名: % CombFigs(figname) figname為合并后的fig文件名,將當(dāng)前目錄下所有fig文件合并為figname文件 % 指定目標(biāo)fig文件名和要合并的文件名稱 % CombFigs(figname,figfiles) figname為合并后的fig文件名, % figfiles為待合并的fig文件,cell數(shù)組格式,將figfiles文件合并為figname文件

3. 演示

3.1 三條相位不同的正弦信號(hào)合并

%% 測(cè)試1: 三條相位不同的正弦信號(hào)合并 % 生成fig文件 t = linspace(0,4*pi,100); y1 = sin(t); y2 = 1.2*sin(t+pi/3); y3 = 0.9*sin(t+2*pi/3); hf1 = figure; plot(t,y1,'b') hf2 = figure; plot(t,y2,'r--') hf3 = figure; plot(t,y3,'k-.') savefig(hf1,'正弦曲線1.fig') savefig(hf2,'正弦曲線2.fig') savefig(hf3,'正弦曲線3.fig') % 極簡(jiǎn)模式調(diào)用,將當(dāng)前目錄下所有fig文件合并為合并Figure文件.fig CombFigs()

合并前圖形:

合并后圖形:

3.2 形狀拼圖合并

%% 測(cè)試2 % 生成fig文件 x1=[0 1 1];y1=[3 3 2]; x2=[1 2 2 1];y2=[3 3 2 2]; x3=[2 3 3 2];y3=[3 3 2 2]; x4=[0 2 0];y4=[3 1 1]; x5=[1 3 3];y5=[2 2 0]; x6=[0 2 3 0];y6=[1 1 0 0]; hf1 = figure; fill(x1,y1,'y'); hf2 = figure; fill(x2,y2,'m'); hold on fill(x3,y3,'c'); hf3 = figure; fill(x4,y4,'r'); hf4 = figure; fill(x5,y5,'b'); hf5 = figure; fill(x6,y6,'g'); savefig(hf1,'圖形1.fig') savefig(hf2,'圖形2.fig') savefig(hf3,'圖形3.fig') savefig(hf4,'圖形4.fig') savefig(hf5,'圖形5.fig') % 將當(dāng)前目錄下所有fig文件合并為合并Figure文件.fig CombFigs('組合圖形',{'圖形1.fig','圖形2.fig','圖形3.fig','圖形4.fig','圖形5.fig'}) legend off

合并前圖形:

合并后圖形:

3.3 不同控制方法階躍響應(yīng)曲線合并

%% 測(cè)試3 不同控制方法階躍響應(yīng)曲線合并 % 將當(dāng)前目錄下四種控制方法階躍響應(yīng)結(jié)果fig文件合并為控制對(duì)比.fig CombFigs('控制對(duì)比',{'P控制.fig','PID控制.fig','模糊PID控制輸出.fig','神經(jīng)網(wǎng)絡(luò)PID控制.fig'})

合并前圖形:

合并后圖形:

3.4 百花爭(zhēng)艷圖合并

%% 測(cè)試4 百花爭(zhēng)艷圖合并 % 將當(dāng)前目錄下枝干、花、蝴蝶、兔子、月亮等fig文件合并為百花爭(zhēng)艷圖.fig CombFigs('百花爭(zhēng)艷圖',{'0-枝干.fig','1-花.fig','2-兔子.fig','3-蝴蝶.fig','4-月亮.fig'})

合并前圖形:

合并后圖形:

4. 源程序下載

有Matlab/Simulink方面的技術(shù)問題,歡迎發(fā)送郵件至944077462@qq.com討論。更多Matlab/Simulink原創(chuàng)資料,歡迎關(guān)注微信公眾號(hào):Matlab Fans
使用Matlab將多個(gè)圖形Figure文件合并

總結(jié)

以上是生活随笔為你收集整理的使用Matlab将多个图形Figure文件合并的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。