首页
/
每日頭條
/
生活
/
matlab如何繪制兩幅圖
matlab如何繪制兩幅圖
更新时间:2024-11-27 00:39:28

強大的繪圖功能是Matlab的特點之一,Matlab提供了一系列的繪圖函數,我們可以通過在在Matlab右上角的搜索界面輸入"Types of MATLAB Plots",然後打開"Types of MATLAB Plots"文檔,我們就能看到Matlab能夠繪制如下圖所示的各種圖形。

matlab如何繪制兩幅圖(如何用Matlab畫出你想要的圖)1

Matlab不僅可以繪制二維的圖像還可以繪制三維圖像,甚至是動畫,讓你的學習、科研和工作中的畫圖簡單又好看。下面三種不同類型的圖像就是通過Matlab繪制的。

matlab如何繪制兩幅圖(如何用Matlab畫出你想要的圖)2

matlab如何繪制兩幅圖(如何用Matlab畫出你想要的圖)3

matlab如何繪制兩幅圖(如何用Matlab畫出你想要的圖)4

在确定要繪制什麼圖形的時候,最初不用太過于考慮圖像中的細節問題,選好我們所需的繪圖函數即可。确定繪圖函數後,通過給定或者我們自己導入的基本數據和參數就能得到我們想要的圖形。當然,Matlab是可以直接對圖形的每個元素,如坐标軸、曲線(顔色、粗細)、文字等一系列的對象進行單獨操作。在設定好圖像的呈現方式(通過繪圖函數實現)并不斷調節好圖形中的各個元素後,你就可以将屬于你自己的繪圖代碼保存下來,以後隻用導入數據就能夠一鍵畫好你想要的圖像。在這裡我以那個三維曲面動畫圖為例來講解如何在Matlab中畫圖的。

三維曲面動圖分解看來肯定是由一張一張的三維曲面圖連續變化得到的,那麼我們首先肯定是來制作單獨的三維曲面圖。通過到上面提到的Matlab圖形類型文檔中查看,我們可以在“表面和網格畫圖”(Surface and Mesh Plot)一欄中找到surf 還有mesh等函數來繪制三維曲面。在這裡我們選取surf來進行繪制,那麼surf這個函數是如何使用的呢?點開surf的文檔介紹,裡面有詳細的surf的使用說明。通過Matlab自帶的使用說明、示例或者在網上查看别人使用的方法。我們基本可以明确無論是使用surf(Z)還是surf(X,Y,Z)來進行三維平面畫圖,Z都是最關鍵的。假如Z是一個m行✖n列的矩陣,那麼surf(Z)相當于是逐個把矩陣Z中的每個元素投射到三維空間中形成一個點,點的高度(z,同樣也代表了顔色)就是元素具體的數值,x和y坐标則對應了元素在矩陣中索引位置。最然後把相鄰的點用線連接起來,來組成一個一個細小的三維曲面,并最終繪制成看上去平滑的三維曲面。

比如,我們用想要畫出f(x,y)=x^2 y^2的三維圖,其中x和y的範圍在-5到5之間。我們可以通過以下的代碼來實現:


x=-5:0.25:5;%設定x的取值範圍和精度

y=x;%y的取值範圍和精度和x相同

[X,Y]=meshgrid(x,y);%返回和x與y相關的網格矩陣

Z=X.^2 Y.^2;%生成f(x,y)=x^2 y^2在區間範圍内的所有值

surf(X,Y,Z);%繪制三維曲面圖


最終我們得到了下面這張圖

matlab如何繪制兩幅圖(如何用Matlab畫出你想要的圖)5

那麼最後我們在這個圖的基礎上來繪制一個三維曲面動圖吧!動畫效果是曲面向下變平,繼續往下彎曲到和往上彎曲時一樣的程度,随後返回到初始狀态。這個過程中實際上變動的是高度,也就是Z值,那麼我們依次取N個不同的Z值并進行畫圖,然後把每一個圖像連接在一起就行了。在Matlab中可以同生成gif格式的動圖來實現以上功能。具體代碼和效果圖如下:


x=-5:0.25:5;%設定x的取值範圍和精度

y=x;%y的取值範圍和精度和x相同

[X,Y]=meshgrid(x,y);%返回和x與y相關的網格矩陣

Z=X.^2 Y.^2;%生成f(x,y)=x^2 y^2在區間範圍内的所有值

fact=2*sin(0:0.1*pi:2*pi);%設定Z的變化因子,這裡用了周期函數sin,并取了一整個周期的值

for k=1:length(fact)

surf(X,Y,fact(k)*Z);

axis([-5 5 -5 5 -100 100])%設定坐标軸範圍

caxis([-120 120])%設定坐标取色範圍

axis off%隐藏坐标軸

title('三維動畫');%設定圖像名稱

frame=getframe(gcf); %獲取當前畫面

im=frame2im(frame);%制作gif文件,圖像必須是index索引圖像

[I,map]=rgb2ind(im,256);%轉成gif圖片,隻能用256色

if k==1

% 第一張直接保存到目錄

imwrite(I,map,strcat('C:\toutiao\20180718\','3D-Animation2','.gif'),'gif','Loopcount',inf,'DelayTime',0.1);

else% 剩下的每張圖續接上一個圖,每張圖間隔為0.1秒

imwrite(I,map,strcat('C:\toutiao\20180718\','3D-Animation2','.gif'),'gif','WriteMode','Append','DelayTime',0.1);

end

end


matlab如何繪制兩幅圖(如何用Matlab畫出你想要的圖)6

以上就是今天介紹的Matlab的畫圖功能,雖然隻涉及到了一個畫圖函數,但具體如何去使用函數文中已做過介紹(代碼裡也寫了備注),其他所有的函數也是如此。希望本文對你有所幫助,如果有什麼想學的東西可以在下面留言,隻要我知道的話會盡量回答。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
火影裡最厲害的忍者排名(盤點火影中戰鬥智商最高忍者)
火影裡最厲害的忍者排名(盤點火影中戰鬥智商最高忍者)
  整部火影抛開後期神仙打架戰鬥場景,在絕大多數情況下,戰鬥智商很有用,聰明的忍者,總能夠運用睿智頭腦,起到四兩撥千斤作用。   一些原本有着實力差距忍者,在戰鬥實力上的不足,卻能夠用聰明頭腦來彌補。火影中的聰明人有很多,如二代火影千手扉間、四代火影波風水門,宇智波鼬、卡卡西,以及奈良鹿久、鹿丸父子等等。      這些聰明的忍者,在忍者生涯中,有了讓人驚訝...
2024-11-27
羅斯頂着熱火三巨頭拉杆(羅斯底線突破拉杆上籃夢回巅峰)
羅斯頂着熱火三巨頭拉杆(羅斯底線突破拉杆上籃夢回巅峰)
     直播吧2月14日訊 NBA常規賽,火箭與尼克斯的比賽正在進行。   比賽第二節,羅斯在一次進攻中沿底線突破,随後上演拉杆上籃,空中晃過恩瓦巴,此球頗有羅斯巅峰時期的風采。   (AO)   ,
2024-11-27
火影忍者鹿蝶一共有幾代(木葉三代豬鹿蝶)
火影忍者鹿蝶一共有幾代(木葉三代豬鹿蝶)
  火之國木葉村能夠成為忍界的強大忍村,不僅因為曆代火影們的過人實力,而且在其領導下的忍者家族也都十分具有傳奇色彩,在木葉衆多的秘術家族中,由奈良一族、山中一族、秋道一族族長組成的豬鹿蝶小隊十分搶眼,目前出現三代豬鹿蝶,那麼哪一代可能最強呢?      一代豬鹿蝶   山中亥一、奈良鹿久、秋道丁座。   山中亥一為聯合軍聯絡部隊隊長,精神秘術強悍,能夠探查思...
2024-11-27
采購工程師考試都學習什麼(招标采購師需要學習哪些内容)
采購工程師考試都學習什麼(招标采購師需要學習哪些内容)
     方式/時長内容(36學時)在線學習/2小時1.依法必須招标項目如何有序開展?在線學習/2小時2.國有企業非必須招标項目招采管理實務;在線學習/2小時3.采購項目招标文件及采購文件編制方法;在線學習/2小時4.依法必招項目評标實務及疑難問題分析;在線學習/2小時5.政府采購六種采購方式要點解析;在線學習/2小時6.招标采購項目的争議處理;在線學習/2...
2024-11-27
春花秋月大結局好虐(春花秋月高度還原原著内容)
春花秋月大結局好虐(春花秋月高度還原原著内容)
  《天雷一部之春花秋月》,這部劇是根據小說改編而成,故事劇情也非常的精彩,劇中的cp也是非常的甜蜜,《春花秋月》這部網劇,已經走向高潮階段,最開始春花從一個美麗的誤會,生生将真愛給淹沒在心底,并且獲得自己愛情的故事,這部劇是由趙露思和李弘毅主演的。      《春花秋月》這部網劇,已經走向高潮階段,最開始春花從一個美麗的誤會,生生将真愛給淹沒在心底。可惜,...
2024-11-27
Copyright 2023-2024 - www.tftnews.com All Rights Reserved