matlab meshgrid函數_matlab入門(三)圖像可視化

matlab圖像可視化

基本要求

(1)掌握圖形窗口的創建與控制,以及圖形窗口的基本操作;(2)熟練掌握二維和三維繪圖基本的命令、線型控制;(3)初步掌握用特殊的圖形來表現特殊數據的性質,如面積圖、直方 圖、餅圖等。(4)掌握坐標軸的控制和圖形標注命令及其用法。

1. 二維平面圖形與坐標系

  1. 幾個基本的繪圖命令

  2. 線性坐標曲線 plot 函數命令 plot 是 MATLAB 二維曲線繪圖中最簡單、最重要、使用最廣泛的一個線性繪圖函數。它可以生成線段、曲線和參數方程曲線的函數圖形。命令格式:

  3. plot(X,Y)plot(x1,y1,x2,y2,…):綜合調用方式用命令 plot(x,y)繪制函數 y=cos(x)在一個周期內的圖形。x=0:0.01:2*pi;y=cos(x);plot(x,y)
82b5345247493a02660325276864146a.png
  1. 在同一圖形窗口中用命令 plot(x,y)繪出正弦余弦函數的圖形。

  x=0:0.01:2*pi;??y=[sin(x);cos(x)];  plot(x,y)
7bf7f0238c18df297fbc452a9e05a03f.png
  1. plot 函數可以設置曲線的線段類型、定點標記和線段顏色。?調用格式:plot(x,y,s) ,s 為類型說明參數,是字符串。?s 字符串可以是三種類型的符號之一,也可以是線型與顏色和定點標記與顏色的組合;如果沒有 s 參數,plot 將使用缺省設置(實線,前七種顏色順序著色)繪制曲線;在當前坐標系中繪圖時,每調入一次繪圖函數,MATLAB將擦掉坐標系中已有的圖形對象。可以用 hold on 命令在一個坐標系中增加新的圖形對象。注意MATLAB會根據新圖形的大小,重新改變坐標系的比例。

用不同的線型和標注來繪制兩條曲線。

9e1a0d3b3ea13fb41804df5e4f5ecab0.png
  • 圖形窗口的分割 有時需要在一個圖形窗口中顯示幾幅圖,以便對幾個函數進行直觀、便捷的比較。由于每個繪圖命令在繪制數據圖像時都會將已有圖形覆蓋掉,而用 hold 命令不能實現同時顯示幾個不同坐標尺寸下的圖形,用 figure 命令再創窗口又很難同時比較由不同的數據繪得的圖像。實現在同一個窗口中同時顯示多個圖像的命令subplot。使用格式為:

  • subplot(m,n,i)

其含義為 :把圖形窗口分割為 m 行 n 列子窗口,然后選定第 i 個窗口為當前窗口。subplot 命令不僅用于二維圖形,對三維圖形一樣適用。其本質是將 figure 窗口分為幾個區域,再在每個區域內分別繪圖。

  • %用 subplot 函數把兩種不同的圖形綜合在一個圖形窗口中。subplot(2,2,1)t=0.1:0.1:2*pi;y=sin(t);semilogx(t,y)grid onsubplot(2,2,2)t=0:0.1:4*pi;y=sin(t);plot(t,y)subplot(2,2,3)x=1:0.01:5;y=exp(x);plot(x,y,x,y,’semilogx’,’plot’)subplot(2,2,4)x=1:0.1:10;y=sqrt(x);plot(x,y,’:rd’)
f13a9a97f6851bd977679fbe21835866.png
  1. 坐標系的調整 實現坐標系的調整的命令是 axis 函數。調用格式為:** axis([xmin,xmax,ymin,ymax,zmin,zmax])** 坐標的最小值( xmin,ymin,zmin)必須小于相應的最大值( xmax,ymax,zmax),否則會出錯。自動坐標系與用 axis 函數調整后的坐標系的比較。

  2. subplot(2,1,1)t=0:0.1:4*pi;y=sin(t);plot(t,y)subplot(2,1,2)t=0:0.1:4*pi;y=sin(t);plot(t,y)axis([0,max(t),min(y),max(y)])
1510a20fc6c853cdce4b7c1f5bb13d39.png

2. 三維繪圖 ##

  • 三維曲線繪圖命令 三維函數 plot3主要用來表現單參數的三維曲線,與二維繪圖函數 plot 相比,只多了第三維數據。其調用格式為:

  • plot3(X1,Y1,Z1,s1,X2,Y2,Z2,s2,…)

參數的含義如下:Xn、Yn、Zn:第一到三維數據,是尺寸相等的向量/矩陣;s、s1、s2:是字符串,用來設置線型、顏色、數據點標記。x、y、z 是向量時,plot3 命令的使用

t=0:0.1:8*pi;plot3(sin(t),cos(t),t)title(’繪制螺旋線’) %用命令 title 對圖形主題進行標注xlabel(’sin(t)’)ylabel(’cos(t)’)zlabel(’t’)%命令 zlabel 用來指定 z 軸的數據名稱grid on
aac5da75c4aaed0ef12e470f5dd462b2.png

x、y、z 都是矩陣時,plot3 命令的使用

[X,Y]=meshgrid(-pi:0.1:pi);Z=sin(X)+cos(Y);plot3(X,Y,Z)
0a3aaf51cf0b686e4080a193db2ed18a.png
  • 三維曲面繪圖命令 為了繪制定義在平面區域 D =[x0,xm]×[y0,yn ]上的三維曲面z=f(x,y) ,首先將[x0,xm]在 x 方向分成 m 份,將[y0,yn]在 y 方向分成 n 份,由各劃點分別作平行于坐標軸的直線,將區域 D 分成 m×n 個小矩形;對于每個小矩形,計算出網格點的函數值,決定出空間中四個頂點( xi,yi,f(xi,yi)),連接四個頂點得到一個空間的四邊形片;所有四邊形片連在一起構成函數 z=f(x,y)定義在區域 D 上的空間網格曲面。因此,三維曲面繪圖命令可分為平面網格點的生成、在平面網格基礎上繪制三維網格及對三維表面進行處理三個步驟。

  • 平面網格點的生成 函數命令meshgrid 用來生成 x-y 平面上的網格點矩陣。調用形式為:

  • [X,Y]=meshgrid(x,y)[X,Y]=meshgrid(x) 等價于[X,Y]=meshgrid(x,x)

參數含義如下:?x:是區間[x0,xm]上分劃的向量;y:是區間[y0,yn]上分劃的向量;X,Y:輸出變量矩陣,矩陣 X 的行向量都是向量 x,矩陣 Y 的列向量都是向量 y。函數 meshgrid 將由兩個向量決定的區域轉換為對應的網格點矩陣。

  • 三維網格命令 mesh 利用函數mesh生成網格曲面。調用格式為:

  • mesh(X,Y,Z,C):X、Y、Z、C 是同維數的矩陣,X、Y、Z 對應空間上的網格點,網格線顏色由C決定;

  • mesh(X,Y,Z):相當于上面的 C=Z 的情況;

  • mesh(x,y,Z,C):x 和 y 是向量,Z 和 C 是同維數的矩陣,網格曲面的網格頂點是( x(j),y(i),Z(i,j)),網格線的顏色由矩陣 C 決定;

  • mesh(x,y,Z):相當于上面的 C=Z 的情況;

  • mesh(Z,C):等價于 mesh(x,y,Z,C),此時向量x=1:n,向量 y=1:m;

  • mesh(Z):相當于上面的 C=Z 的情況

  • mesh(...,’PropertyName’,PropertyValue,...):給函mesh設置曲面屬性。

  • 三維表面命令 surf 函數 surf 可實現對網格曲面片進行著色,將網格曲面轉化為實曲面。surf 命令的調用格式與 mesh 相同。利用三維網格表面命令 surf 繪制圖形。

  • z=peaks; %繪制山峰的圖像,將函數值賦予變量z

  • surf(z) %對山峰的圖像進行著色處理

  • shading interp %函數 shading 改變著色方式

  • 柱面的表達cylinder cylinder命令中,柱面的軸線定義為 z 軸,只要給出母線的描述就可完成一個柱面。調用格式為:

  • [X,Y,Z] = cylinder(R,N);

  • [X,Y,Z] = cylinder(R):缺省值 N=20;

  • [X,Y,Z] = cylinder:缺省值 N=20,R=[1,1]。

R:是一描述柱面母線的向量;N:是旋轉柱面上的分割線條數;[X,Y,Z] :是返回的x,y,z坐標向量。繪制一個柱面。

t=pi:0.01:3*pi;r=sin(t)+t;cylinder(r,30)shading interp
c886512822dccd980ff3af354f094b0a.png
  • 球面的表達sphere 調用格式為:

  • [X,Y,Z]=sphere(N):產生一個( N+1)×( N+1)的矩陣,然后用函數 surf 命令繪制一個單位的球面,N 為設置分割線的條數;

  • [X,Y,Z] = sphere:缺省 N = 20。

畫一個球面。

[X,Y,Z]=sphere;surf(X,Y,Z)

90d16f28bf1af06f2e1ffee935fea036.png

  • 特殊圖形繪制

為了將抽象的數據表達得更形象,除了繪制二維、三維圖形外,還要用到直方圖、面積圖、餅圖等特殊圖形。

圖像標注修飾

  • 圖形標注

坐標軸和圖形標題標注 ;標注坐標軸 x、y 和 z 的命令函數為 xlabel、ylabel 和 zlabel ,調用格式為:

xlabel(’text’)xlabel(’text’,’Property1’,PropertyValue1,’Property2’,PropertyValue2,...)H = xlabel(...) 返回坐標軸標注的句柄。

其中,’text’是要添加的標注文本。’Property’是文本的屬性名,’PropertyValue’是屬性值(所用字體、大小、標注角度等)。圖形加標題的函數為 title,其調用格式與坐標軸標注類似。

  • 圖例的標注 legend命令實現不同圖例的說明。其調用格式為:

  • legend(string1,string2,string3, ...)

  • legend(string1,string2,string3,...,Pos)

按順序把字符串添加到相應的曲線線型符號之后;Pos對圖例的位置作出設置和調整:

0 = 自動把圖例置于最佳位置( 和圖中曲線重復最少);1 = 置于圖形窗口的右上角( 缺省值);2 = 置于圖形窗口的左上角;3 = 置于圖形窗口的左下角;4 = 置于圖形窗口的右下角;-1 = 置于圖形窗口的右側( 外部)。
  • 控制分格線 對二維和三維圖形都適用。有三種用法:

  • grid on:打開分格線控制開關,以后繪制的圖形都帶有分格線;

  • grid off:關閉分格線控制開關,以后繪制的圖形都不帶分格線;

  • grid:用于實現分格線繪制切換。

  • 舉例

繪制圖形,并用函數 xlabel、title 和 legend 命令進行標注。

t=0:0.1:4*pi; y=sin(t); y1=cos(t);plot(t,y,':',t,y1,'r*')xlabel('x 軸 (0--4\pi)','fontsize',12,'fontweight','bold')ylabel('y 軸','fontsize',12,'fontweight','bold')title('繪制正弦波和余弦波 Pos=1','fontsize',10,'fontweight','bold','fontangle','italic')text(pi,0,'\leftarrowsin(\pi)=0')text(pi,-1,'\leftarrowcos(\pi)=-1')text(pi/2,0.9,['\uparrowsin(\pi/2)=',num2str(sin(pi/2))])text(0,-0.6,['繪圖日期:',date])text(0,-0.8,['MATLAB 版本:',version])legend('正弦波','余弦波')figure(2)plot(t,y,':',t,y1,'r*')title('繪制正弦波和余弦波 Pos=0','fontsize',10,'fontweight','bold','fontangle','italic')legend('正弦波','余弦波',0)grid onfigure(3)plot(t,y,':',t,y1,'r*')title('繪制正弦波和余弦波 Pos=-1','fontsize',10,'fontweight','bold','fontangle','italic')
540e5da0224670332259d922c7ff5dd2.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/533697.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/533697.shtml
英文地址,請注明出處:http://en.pswp.cn/news/533697.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

hashmap remove 沒釋放內存_java從零開始手寫 redis(13)HashMap 源碼原理詳解

為什么學習 HashMap 源碼?作為一名 java 開發,基本上最常用的數據結構就是 HashMap 和 List,jdk 的 HashMap 設計還是非常值得深入學習的。無論是在面試還是工作中,知道原理都對會我們有很大的幫助。本篇的內容較長,建…

南京高中計算機老師,南京市教育局召開中小學教師信息技術應用能力提升工程2.0市級專家組工作會議...

2021年3月2日上午,南京市中小學教師信息技術應用能力提升工程2.0市級專家組工作會議在雨花臺區教師發展中心召開。市教育局副局長祁壽東出席會議并講話,市教研室、教科所、電教館、教師發展學院主要負責同志,市級專家團隊成員及各區教師發展中…

python計算執行時間的函數_[python] 統計函數運行時間

第一種: import time def time_me(fn): #fn 是要修飾/修改 的函數 def _wrapper(*args, **kwargs): #這個 _wrapper(*args, **kwargs) 則代指fn, *args 代表一般變量參數, **kwargs代表 字典,哈希等參數 start time.perf_counter() fn(*args…

arthas 排查內存溢出_Java 應用線上問題排查思路、常用工具小結

前言本文總結了一些常見的線上應急現象和對應排查步驟和工具。分享的主要目的是想讓對線上問題接觸少的同學有個預先認知,免得在遇到實際問題時手忙腳亂。畢竟作者自己也是從手忙腳亂時走過來的。只不過這里先提示一下。在線上應急過程中要記住,只有一個…

計算機個性化定制服務課題,服務網絡的構建與面向增量式需求的動態定制方法-計算機科學與技術專業論文.docx...

服務網絡的構建與面向增量式需求的動態定制方法-計算機科學與技術專業論文Classified Index: TP315 U.D.C: 681.3Dissertation for the Master’s Degree in EngineeringSERVICE NETWORK CONSTRUCTION AND DYNAMIC CUSTOMIZATION METHOD FOR SUBJECTIVE CHANGES OF CUSTOMER RE…

flutter listview 滾動到指定位置_Flutter 布局原理及實戰

1. Flutter UI架構Flutter將視圖數據抽象成為三個部分,即Widget樹、Element樹和RenderObject樹。Widget樹:控件的配置信息,不涉及渲染,更新代價極低。RenderObject樹:真正的UI渲染樹,負責渲染UI&#xff0c…

計算機的屏幕約是16平方分米嗎,小明的臥室有16平方分米對不對

小明的臥室有16平方分米對不對不對,應該是16平方米不對錯! 16平方分米太小了不對,那么小怎么可能住人。不正確應該是16平方米xiao ming de wo shi you 1 6 ping fang fen mi dui bu dui32平方分米涂上每平方分米的96克油漆,需要幾克32平方分米需要油漆30…

python引用傳遞_python 是值傳遞還是引用傳遞 知乎

展開全部 那要看數據類型了,21135261int,float,str這種就是傳值,list,dict,類的實例,自定義對象都是穿4102引用。 下面1653是示例代碼:def change(int1,float1,str1,dict1,obj1,list…

雷神開機logo更改_國產外星人雷神再發新品 911MT逐影者RTX2060光追游戲本評測

隨著NVIDIA發布了筆記本20系顯卡之后,宣示著全民進入了“RTX光線追蹤時代”,各種新款的游戲也紛紛宣布支持“光線追蹤”技術來吸引更多的玩家,似乎現在游戲本上沒有個“RTX”貼紙就已經不好意思跟別人打招呼了。說到2019年的RTX新品&#xff…

AJAX框架衣柜內部布局,?最合理的衣柜內部布局解析,3大細節不容小覷

時常有業主或者朋友問小輕,最合理的衣柜內部布局應該是怎樣的,確實這對于非業內人士一般都是不太清楚的,即使有的朋友已經有了豐富的生活經驗,甚至是業內人士也不一定對此完全了解。那么到底最合理的衣柜內部布局是怎樣的呢&#…

python爬取數據保存為csv時生成編號_將爬取到到數據以CSV格式存儲

CSV文件存儲 CSV,全稱為Comma-Separated Values,中文可以叫做逗號分隔值或字符分隔值,其文件以純文本形式存儲表格數據。該文件是一個字符序列,可以由任意數目的記錄組成,記錄間以某種換行符分隔。每條記錄由字段組成&…

博達3956交換機配置手冊_網絡設備維保淺談之交換機維保

隨著信息化的飛速發展,交換機作為信息流通的承載者,是應用最為廣泛的網絡設備之一,其作用不言而喻。因此,在日產使用中,要注意交換機這種核心的設備的維護與保養,以免引發故障。交換機運維需要注意哪些問題…

java cas原理_Java并發之原子變量及CAS算法-上篇

Java并發之原子變量及CAS算法-上篇編輯?概述本文主要講在Java并發編程的時候,如果保證變量的原子性,在JDK提供的類中是怎么保證變量原子性的呢?。對應Java中的包是:java.util.concurrent.atomic包下。因為涉及到了CAS算法&#x…

node ajax validator,使用validator.js對字符串數據進行驗證

validator.js是一個對字符串進行數據驗證和過濾的工具庫,同時支持Node端和瀏覽器端,github地址是https://github.com/chriso/validator.js主要API如下:驗證APIcontains(str, seed)驗證str中是否含有seedequals(str, comparison)驗證是否相等i…

css span 右端對齊_CSS標準文檔流

web頁面的制作,是個“流”,像水流一樣,必須從上往下,一點點的編織,不像畫畫,可以這個地方畫一個,另一個地方畫一個,隨意而為。標準文檔流的一些微觀現象1. 空白折疊現象1)標簽與標簽…

composer升級_Composer 使用姿勢與 Lumen 升級指南

Composer 使用姿勢這里主要說說 composer.json 和 composer.lock 文件的作用。composer.jsoncomposer.json 文件包含了項目的依賴和其它的一些元數據,使用 JSON format 編寫。當初次調用 composer install 時,Composer 會根據 composer.json 文件&#x…

服務器間傳文件$d,基于OpenSSH+WinSCP完成Windows服務器之間的文件傳輸

背景經常會遇到在不同服務器之間傳輸文件,Linux和Linux之間用命令rsync, windows和linux之間普遍是有圖形化界面的ftp軟件,老黃平時用的比較多的是FileZilla。Windows和Windows之間的話,90%都是在一臺機器復制,到另一臺…

dbgrideh 為什么只一行_Mysql性能優化:為什么count(*)這么慢?

導讀在開發中一定會用到統計一張表的行數,比如一個交易系統,老板會讓你每天生成一個報表,這些統計信息少不了sql中的count函數。但是隨著記錄越來越多,查詢的速度會越來越慢,為什么會這樣呢?Mysql內部到底是…

jmeter 高并發測試報告_JMeter分布式測試

一、為什么要使用分布式測試按照一般的壓力機配置,jmeter的GUI模式下(Windows),最多支持300左右的模擬請求線程,再大的話,容易造成卡頓、無響應等情況,這是限于jmeter其本身的機制和硬件配置。有時候為了盡量模擬業務場…

登陸攔截攔截ajax,過濾器實現登錄攔截需要注意的問題(AJAX請求的處理)

1.問題描述:最近自己在寫demo時遇到一個問題,在ajax請求時用Filter做登錄攔截,結果頁面不跳轉(Ajax是不能做轉發和重定向的)、、、、最終的最終在同事zt的提示下,恍然大悟,雖然很基本的問題,但也糾結了好久…