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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MATLAB学习笔记(二)——数据及其运算

發布時間:2023/12/16 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MATLAB学习笔记(二)——数据及其运算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MATLAB數據及其運算筆記

      • 2.1 MATLAB數值數據
        • 2.1.1 數值數據類型的分類
          • 1.整型
          • 2.浮點型
          • 3.復型
        • 2.1.2 數據的輸出格式
      • 2.2 MATLAB矩陣的表示
        • 2.2.1 矩陣的建立
        • 2.2.2 冒號表達式
        • 2.2.3 矩陣的引用
          • 1.矩陣元素的引用方式MATLAB通過下標引用矩陣的元素
          • 2.利用冒號表達式獲得子矩陣
          • 3.利用空矩陣刪除矩陣的元素
          • 4.改變矩陣的形狀
      • 2.3 變量及其操作
        • 2.3.1 變量與賦值語句
          • 1.變量命名
          • 2.賦值語句
        • 2.3.2預定義變量
        • 2.3.3 變量的管理
          • 1.內存變量的刪除與修改
      • 2.4 MATLAB常用內部函數
        • 2.4.1 常用數學函數
        • 2.4.2 矩陣的超越函數
          • 1.矩陣平方根
          • 2.矩陣對數
          • 3.矩陣指數
          • 4.普通矩陣函數
      • 2.5 MATLAB運算
        • 2.5.1 算術運算
          • 1.基本算術運算
          • 2.點運算
        • 2.5.2 關系運算
        • 2.5.3 邏輯運算
      • 2.6 字符串
        • 2.6.1 字符串的表示
        • 2.6.2 字符串的操作
      • 2.7 結構數據和單元數據
        • 2.7.1 結構數據
        • 2.7.2 單元數據

聲明:
筆記是學習慕課網《科學計算與MATLAB語言》課程和劉衛國主編的《MATLAB程序設計與應用(第3版)》后的個人總結,方便自己以后鞏固和復習!

2.1 MATLAB數值數據

2.1.1 數值數據類型的分類

1.整型

整型數據是不帶小數的數,分為有帶符號整數和無符號整數。

2.浮點型

浮點型數據有單精度(single)和雙精度(double)之分,單精度型實數在內存中占用4個字節,雙精度型實數在內存中占用8個字節,雙精度型的數據精度更高。

在Matlab中,數據默認為雙精度型。

single函數 可以將其他類型的數據轉換為單精度型;利用class可以得到參數的數據類型。

double函數 可以將其他類型的數據轉換為雙精度型。

3.復型

復型數據包括實部和虛部兩個部分,實部和虛部默認為雙精度型。

在MATLAB中,虛數單位用i或j表示。

例如,6+5i與6+5j表示的是同一個復數,也可以寫成6+5i或6+5j,這里將i或j看作一個運算量參與表達式的運算。

2.1.2 數據的輸出格式

MATLAB用十進制數表示一個常數,具體可采用日常記數法和科學記數法兩種表示方法。

format命令的格式為:

format 格式符

其中,格式符決定數據的輸出格式,各種格式符及其含義如表所示。

格式符含義
short輸出小數點后4位,最多不超過7位有效數字。對于大于1000的實數,用5位有效數字的科學記數形式輸出
long15位有效數字形式輸出
short e5位有效數字的科學記數形式輸出
long e15位有效數字的科學記數形式輸出
short g從short和short e中自動選擇最佳輸出方式
long g從long和long e中自動選擇最佳輸出方式
rat近似有理數表示
hex十六進制表示
+正數、負數、零分別用+、-、空格表示
bank銀行格式,用元、角、分表示
compact輸出變量之間沒有空行
loose輸出變量之間有空行

注意:format命令只影響數據輸出格式,而不影響數據的計算和存儲。

2.2 MATLAB矩陣的表示

2.2.1 矩陣的建立

1.直接輸入法:

最簡單的建立矩陣的方法是從鍵盤直接輸入矩陣的元素。

具體方法如下:將矩陣的元素用方括號括起來,按矩陣行的順序輸入各元素,同一行的各元素之間用空格或逗號分隔,不同行的元素之間用分號分隔。

2.2.2 冒號表達式

冒號表達式可以產生一個行向量,

一般格式是:

e1:e2:e3

其中e1為初始值,e2為步長,e3為終止值。

初始值:4 步長:3 終止值:12。

在MATLAB中,還可以用linspace函數產生行向量。

其調用格式為:

linspace(a,b,n)

其中a和b是生成向量的第一個和最后一個元素,n是元素總數。

顯然,linspace(a,b,n)與a:(b-a)/(n-1):b等價

2.2.3 矩陣的引用

1.矩陣元素的引用方式MATLAB通過下標引用矩陣的元素

例如:A(3,2)=200

也可以采用矩陣元素的序號來引用矩陣元素。矩陣元素的序號就是相應元素在內存中的排列順序。

在MATLAB中,矩陣元素按列存儲,先第一列,再第二列,依次類推。
顯然,序號(Index)與下標(Subscript )是一一對應的,以m×n矩陣A為例,矩陣元素A(i,j)的序號為(j-1)*m+i。其相互轉換關系也可利用sub2ind和ind2sub函數求得。

2.利用冒號表達式獲得子矩陣

① A(:,j)表示取A矩陣的第j列全部元素;A(i,:)表示A矩陣第i行的全部元素;A(i,j)表示取A矩陣第i行、第j列的元素。

② A(i:i+m,:)表示取A矩陣第i~i+m行的全部元素;A(:,k:k+m)表示取A矩陣第k~k+m列的全部元素,A(i:i+m,k:k+m)表示取A矩陣第i~i+m行內,并在第k~k+m列中的所有元素。 ③A(:)將矩陣A每一列元素堆疊起來,成為一個列向量,而這也是MATLAB變量的內部儲存方式。

3.利用空矩陣刪除矩陣的元素

在MATLAB中,定義[]為空矩陣。給變量X賦空矩陣的語句為

X=[]

注意,X=[]與clear X不同,clear是將X從工作空間中刪除,而空矩陣則存在于工作空間中,只是維數為0。

4.改變矩陣的形狀

reshape(A,m,n)函數在矩陣總元素保持不變的前提下,將矩陣A重新排成m×n的二維矩陣。

例如:

x=[23,45,65,34,65,34,98,45,78,65,43,76 y=reshape(x,3,4 y =23 34 98 6545 65 45 4365 34 78 76

注意:

reshape函數只是改變原矩陣的行數和列數,即改變其邏輯結構,但并不改變原矩陣元素個數及其存儲順序。
A(:)將矩陣A的每一列元素堆疊起來,成為一個列向量,從而改變了矩陣的形狀。

2.3 變量及其操作

2.3.1 變量與賦值語句

1.變量命名

在MATLAB 7.0中,**變量名是以字母開頭,后接字母、數字或下劃線的字符序列,最多63個字符。**在MATLAB中,變量名區分字母的大小寫。

2.賦值語句

(1) 變量=表達式

(2) 表達式

其中表達式是用運算符將有關運算量連接起來的式子,其結果是一個矩陣。

例如:計算表達式的值,并顯示計算結果

在MATLAB命令窗口輸入命令:

>> x=sqrt(7)-2i; y=exp(pi/2); z=(5+cos(47*pi/180))/(1+abs(x-y))

2.3.2預定義變量

在MATLAB工作空間中,還駐留幾個由系統本身定義的變量。例如,用pi表示圓周率π的近似值,用i,j表示虛數單位。

預定義變量有特定的含義,在使用時,應盡量避免對這些變量重新賦值。

2.3.3 變量的管理

1.內存變量的刪除與修改

MATLAB工作區窗口專門用于內存變量的管理。在工作區窗口中可以顯示所有內存變量的屬性。

who和whos這兩個命令用于顯示在MATLAB工作空間中已經駐留的變量名清單。

who命令只顯示出駐留變量的名稱;

whos在給出變量名的同時,還給出它們的大小、所占字節數及數據類型等信息。

clear命令用于刪除MATLAB工作空間中的變量。

2.內存變量文件利用MAT文件可以把當前MATLAB工作空間中的一些有用變量長久地保留下來,擴展名是.mat。MAT文件的生成和裝入由save和load命令來完成。常用格式為:

save 文件名 [變量名表] [-append] [-ascii]load 文件名 [變量名表] [-ascii]

其中,文件名可以帶路徑,但不需帶擴展名.mat,命令隱含一定對.mat文件進行操作。變量名表中的變量個數不限,只要內存或文件中存在即可,變量名之間以空格分隔。當變量名表省略時,保存或裝入全部變量。-ascii選項使文件以ASCII格式處理,省略該選項時文件將以二進制格式處理。save命令中的-append選項控制將變量追加到MAT文件中。

2.4 MATLAB常用內部函數

2.4.1 常用數學函數

MATLAB提供了許多數學函數,函數的自變量規定為矩陣變量,運算法則是將函數逐項作用于矩陣的元素上,因而運算的結果是一個與自變量同維數的矩陣。

2.4.2 矩陣的超越函數

MATLAB還提供了一些直接作用于矩陣的超越函數,這些函數名都在上述內部函數名之后綴以m,并規定輸入參數A必須是方陣。

1.矩陣平方根

sqrtm(A)計算矩陣A的平方根。

2.矩陣對數

logm(A)計算矩陣A的自然對數。此函數輸入參數的條件與輸出結果間的關系和函數sqrtm(A)完全一樣。

3.矩陣指數

expm(A)的功能都是求矩陣指數eA。例如,對上面計算所得到的A的自然對數b.

4.普通矩陣函數

funm(A,@fun)對方陣A計算由fun定義的函數的矩陣函數值。例如,當fun取exp時,funm(A,@exp)可以計算矩陣A的指數,與expm(A)的計算結果一樣。

2.5 MATLAB運算

2.5.1 算術運算

1.基本算術運算

MATLAB的基本算術運算有:+(加)、-(減)、*(乘)、/(右除)、(左除)、^(乘方)。

注意,運算是在矩陣意義下進行的,單個數據的算術運算只是一種特例。

(1) 矩陣加減運算

假定有兩個矩陣A和B,則可以由A+B和A-B實現矩陣的加減運算。運算規則是:若A和B矩陣的維數相同,則可以執行矩陣的加減運算,A和B矩陣的相應元素相加減。如果A與B的維數不相同,則MATLAB將給出錯誤信息,提示用戶兩個矩陣的維數不匹配。

(2) 矩陣乘法

假定有兩個矩陣A和B,若A為m×n矩陣,B為n×p矩陣,則C=A*B為m×p矩陣。

(3) 矩陣除法

在MATLAB中,有兩種矩陣除法運算:\和/,分別表示左除和右除。

如果A矩陣是非奇異方陣,則A\B和B/A運算可以實現。

A\B等效于A的逆左乘B矩陣,也就是inv(A) *B,

而B/A等效于A矩陣的逆右乘B矩陣,也就是B*inv(A)。

(4) 矩陣的乘方

一個矩陣的乘方運算可以表示成A^x,要求A為方陣,x為標量。

A^2 = A*A

2.點運算

在MATLAB中,有一種特殊的運算,因為其運算符是在有關算術運算符前面加點,所以叫點運算。點運算符有.*、./、.\和.^。兩矩陣進行點運算是指它們的對應元素進行相關運算,要求兩矩陣的維參數相同。

2.5.2 關系運算

MATLAB提供了6種關系運算符:

< (小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(等于)、~=(不等于)。
它們的含義不難理解,但要注意其書寫方法與數學中的不等式符號不盡相同。

關系運算符的運算法則為:

(1) 當兩個比較量是標量時,直接比較兩數的大小。若關系成立,關系表達式結果為1,否則為0。

(2) 當參與比較的量是兩個維數相同的矩陣時,比較是對兩矩陣相同位置的元素按標量關系運算規則逐個進行,并給出元素比較結果。最終的關系運算的結果是一個維數與原矩陣相同的矩陣,它的元素由0或1組成。

(3) 當參與比較的一個是標量,而另一個是矩陣時,則把標量與矩陣的每一個元素按標量關系運算規則逐個比較,并給出元素比較結果。最終的關系運算的結果是一個維數與原矩陣相同的矩陣,它的元素由0或1組成。

例如:

建立5階方陣A,判斷A的元素是否能被3整除

其中,rem(A,3)是矩陣A的每個元素除以3的余數矩陣。此時,0被擴展為與A同維數的零矩陣,P是進行等于(==)比較的結果矩陣。

2.5.3 邏輯運算

MATLAB提供了3種邏輯運算符:&(與)、|(或)和~(非)。

邏輯運算的運算法則為:

(1) 在邏輯運算中,確認非零元素為真,用1表示,零元素為假,用0表示。

(2) 設參與邏輯運算的是兩個標量a和b,

那么,a&b a,b全為非零時,運算結果為1,否則為0。

a|b a,b中只要有一個非零,運算結果為1。

~a 當a是零時,運算結果為1;當a非零時,運算結果為0。

(3) 若參與邏輯運算的是兩個同維矩陣,那么運算將對矩陣相同位置上的元素按標量規則逐個進行。最終運算結果是一個與原矩陣同維的矩陣,其元素由1或0組成。

(4) 若參與邏輯運算的一個是標量,一個是矩陣,那么運算將在標量與矩陣中的每個元素之間按標量規則逐個進行。最終運算結果是一個與矩陣同維的矩陣,其元素由1或0組成。

(5) 邏輯非是單目運算符,也服從矩陣運算規則。

(6) 在算術、關系、邏輯運算中,算術運算優先級最高,邏輯運算優先級最低。

2.6 字符串

2.6.1 字符串的表示

在MATLAB中,字符串是用單引號括起來的字符序列。例如:

xm='Central South University'

例:建立一個字符串向量,然后對該向量做如下處理:

(1) 取第1~5個字符組成的子字符串。

(2) 將字符串倒過來重新排列。

(3) 將字符串中的小寫字母變成相應的大寫字母,其余字符不變。

(4) 統計字符串中小寫字母的個數。

ch='ABc123d4e56Fg9'; subch=ch(1:5) %取子字符串 revch=ch(end:-1:1) %將字符串倒排 k=find(ch>='a'&ch<='z'); %找小寫字母的位置 ch(k)=ch(k)-('a'-'A'); %將小寫字母變成相應的大寫字母 char(ch) length(k) %統計小寫字母的個數

注意是英文下的單撇號;‘ABc123d4e56Fg9’,不是‘ABc123d4e56Fg9’

2.6.2 字符串的操作

1.字符串的執行
與字符串有關的一個重要函數是eval,它的作用是把字符串的內容作為對應的MATLAB命令來執行,其調用格式為:
eval(s)
其中s為字符串。例如:

>> t=pi; m='[t,sin(t),cos(t)]'; y=eval(m) y =3.1416 0.0000 -1.0000

2.字符串與數值之間的轉換
字符串是以ASCII碼形式存儲的,abs和double函數都可以用來獲取字符串矩陣所對應的ASCII碼數值矩陣。

3.字符串的連接
在MATLAB中,要將兩個字符串連接在一起,有兩種常見方法:一是用字符串向量,二是用strcat函數。

4.字符串的比較
字符串的比較有兩種方法:利用關系運算符字符串比較函數
當兩個字符串擁有相同的長度時,可以利用關系運算符對字符串進行比較,比較的規則是按ASCII值大小逐個字符進行比較,比較的結果是一個數值向量,其元素為對應字符比較的結果。例如:

>> 'www0'>='W123' ans =1 1 1 0

字符串比較函數用于判斷字符串是否相等,有4種比較方式,函數如下:

① strcmp(s1,s2):用來比較字符串s1和s2是否相等,如果相等,返回1,否則返回0。
② strncmp(s1,s2,n):用來比較前n個字符是否相等,如果相等,返回1,否則返回0。
③ strcmpi(s1,s2):在忽略字母大小寫前提下,比較字符串s1和s2是否相等,如果相等,返回1,否則返回0。
④ strncmpi(s1,s2,n):在忽略字符串大小寫前提下,比較前n個字符是否相等,如果相等,返回1,否則返回0。

2.7 結構數據和單元數據

2.7.1 結構數據

1.結構矩陣的建立與引用

建立一個結構矩陣可采用給結構成員賦值的辦法。

具體格式為:

結構矩陣名.成員名=表達式

其中表達式應理解為矩陣表達式。

2.結構成員的修改

可以根據需要增加或刪除結構的成員。

例如要給結構矩陣a增加一個成員x4,可給a中任意一個元素增加成員x4:

a(1).x4=410075;

但其他成員均為空矩陣,可以使用賦值語句給它賦確定的值。

要刪除結構的成員,則可以使用rmfield函數來完成。

例如,刪除成員x4:

a=rmfield(a,‘x4’);

2.7.2 單元數據

建立單元矩陣和一般矩陣相似,只是矩陣元素用大括號括起來。

可以用帶有大括號下標的形式引用單元矩陣元素。例如b{3,3}。單元矩陣的元素可以是結構或單元數據。

可以使用celldisp函數來顯示整個單元矩陣,如celldisp(b)。

總結

以上是生活随笔為你收集整理的MATLAB学习笔记(二)——数据及其运算的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 超碰人人在线 | 黄色aa网站| 欧美亚洲成人网 | 毛片毛片毛片毛片毛片 | 亚洲精选中文字幕 | 亚洲一区激情 | 国产精品无码免费在线观看 | 337p粉嫩大胆色噜噜狠狠图片 | 日本黄色免费在线观看 | av激情小说 | 成人性生交大片免费 | 天天爽夜夜爽人人爽 | www三级免费| 大乳女喂男人吃奶视频 | 亚洲一级二级 | 成人性毛片| 日本欧美在线播放 | 69人妻精品久久无人专区 | 欧美狂猛xxxxx乱大交3 | 成人两性视频 | 日本成人福利视频 | 男女无遮挡猛进猛出 | 一级特黄免费视频 | 日韩一级片免费在线观看 | 精品人妻在线播放 | 99热思思 | jizz日本在线播放 | 日本成人在线播放 | 日韩另类av | 日产电影一区二区三区 | 91高清国产 | 少女视频的播放方法 | 亚洲色图p | 国产福利片一区二区 | 免费观看黄色av | 动漫裸体无遮挡 | 久久国产一二三 | 小辣椒导航 | 四虎av在线播放 | av毛片在线看 | 久久福利小视频 | 奇米影视第四色7777 | 精品久久久中文字幕人妻 | 人人妻人人爽欧美成人一区 | 日本一区视频 | 亚洲天堂日本 | 久久视频免费 | 色婷婷狠狠操 | 天堂a√在线| av在线在线| 久久精品国产亚洲av高清色欲 | 污导航在线观看 | 去毛片 | 无码av免费精品一区二区三区 | 欧洲熟妇精品视频 | 粉豆av| 98精品国产 | 少妇激情偷人三级 | 国产原创视频在线观看 | mm131丰满少妇人体欣赏图 | 亚洲精品国产av | 欧美综合一区二区三区 | 久热综合 | 久久中文字幕av | 公侵犯人妻中文字慕一区二区 | 亚洲国产一区在线 | 中文字幕精品一区二区三区视频 | 欧美日韩国产激情 | 91蝌蚪91九色| 亚洲特级黄色片 | 九九热最新| 午夜性色| 日本五十路 | 老司机午夜免费精品视频 | 成人颜色网站 | 欧美高清videos高潮hd | 老妇荒淫牲艳史 | 久久久久婷婷 | 香蕉视频在线网址 | 欧美三区视频 | 影音先锋中文字幕人妻 | 91人人爽 | 美女扒开大腿让男人桶 | 久久亚洲中文字幕无码 | 日韩久久高清 | 亚洲视频日韩 | 久久婷五月天 | 亚洲高清在线一区 | 日韩欧美精品在线观看 | 快乐激情网 | 色妞www精品视频 | 亚洲高清免费观看 | 国产精品扒开腿做爽爽爽a片唱戏 | 日本人体视频 | 韩国三级bd高清中字2021 | 色婷亚洲 | 中文字幕欧美另类精品亚洲 | 天堂网在线视频 | 毛片免费播放 |