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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

理工科毕业设计献礼,MATLAB从入门到精通之矩阵是如何实现寻访与赋值的

發布時間:2025/4/5 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 理工科毕业设计献礼,MATLAB从入门到精通之矩阵是如何实现寻访与赋值的 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

以下是博主精心整理的兩個matlab專欄,包含入門到精通及實戰內容,需要的小伙伴可根據自己需求自行訂閱。

MATLAB-30天帶你從入門到精通

https://blog.csdn.net/wenyusuran/category_10614422.html

MATLAB深入理解高級教程(附源碼)

https://blog.csdn.net/wenyusuran/category_2239265.html

在博主的資源中也有各種算法的應用實例源代碼,需要的小伙伴自取喲。

在創建了矩陣之后,我們經常需要訪問矩陣中的某一個或者一些元素,另外可能需要對其中的某些元素重新賦值或者刪除某一部分元素。本文介紹如何進行矩陣的尋訪與賦值。

1.矩陣的標識

本節介紹單個元素標識和尋訪的3種方式:全下標、單下標、邏輯1標識。

1.1 全下標標識

經典數學教科書在引述具體矩陣元素時,通常采用全下標標識法,即指出某一元素是在第幾行第幾列。這種標識方法的優點是:幾何概念清楚,引述簡單。全下標標識法在MATLAB的尋訪和賦值中因為最為直觀,所以它最為常用。

對于二維矩陣來說,全下標標識由兩個下標組成:行下標、列下標。如A(3,5)表示二維矩陣A的第3行第5列。

這里值得注意的是,MATLAB中對下標的標識是從1開始的,就是和我們平時在數學中使用的說法是一致的。這和其他一些編程語言從0開始標識是不同的。

1.2 單下標標識

MATLAB盡管是以矩陣作為基本的計算單元,但是矩陣的后臺存儲并不是像顯示出來的那樣成長方形排列的,而是按照單下標標識作為一列存儲到內存中。單下標標識就是“只用一個下標來指明元素在矩陣中的位置”。當然,這樣做首先要對二維矩陣的所有元素進行“一維編號”。所謂“一維編號”就是:先設想把二維矩陣的所有列,按照先左后右的次序首尾相連排成一維長列,然后自上而下對元素位置進行編號。

單下標與全下標的轉換關系:以m′n的二維矩陣A為例,若全下標的元素位置是“第a行,第b列”,那么相應的單下標則為c=(b-1)*m+a。

在MATLAB中,有兩個函數可以實現全下標和單下標的轉換。

sub2ind:????根據全下標換算出單下標。

ind2sub:????根據單下標換算出全下標。

單下標的優勢是在特定情境下使用更為簡潔,例如編制某些循環的時候只需要一個循環變量就可以了,另外比如需要將某數組賦值給另一維數不同的數組的時候。

1.3 邏輯1標識

在實際使用中,有時會遇到尋找矩陣中大于或者小于某值的元素的問題,這時就可以使用邏輯1標識法。邏輯1標識用一個基于原矩陣A相對位置的邏輯數組B來對矩陣A進行尋訪。數據B中每一個true值也就是1表示相對位置的A中元素可以被尋訪。如果需要通過邏輯1標識來對矩陣進行尋訪,只需將符合條件的元素位置的標識設置為邏輯1即可。

采用邏輯1標識的程序在速度方面具有一定的優勢。

2. 矩陣的尋訪

【例2-7】?二維矩陣的尋址。

>> a=[1 2 3; 4 5 6]????? ??? %??創建測試矩陣

a =

???? 1???? 2????3

???? 4???? 5????6

>> A=a(2,2)??????????? %??全下標尋訪

A =

???? 5

>> b=a(4)????????????? %??單下標尋訪

b =

???? 5

>> B=a>5????????????? ????? %??返回邏輯下標

B =

???? 0???? 0????0

???? 0???? 0????1

>> c=a(B)????????????? %??邏輯下標尋訪

c =

???? 6

>> d=a(1,:)???????????? %??通過使用冒號可以尋訪全行元素

d =

???? 1???? 2????3

>> e=a(:,2)???????????? %??通過使用冒號可以尋訪全列元素

e =

???? 2

??? ?5

>> f=a(:)?????????????? %??單下標尋訪

f =

???? 1

???? 4

???? 2

???? 5

???? 3

???? 6

>> g=a(:,[1 3])????????? ??? %??尋訪地址可以是向量,以同時尋訪多個元素

g =

???? 1???? 3

???? 4???? 6

本例中的B=a>5和c=a(B),就是采用邏輯1標識法訪問矩陣a中大于5的元素。

3.矩陣的賦值

在了解了矩陣的尋訪方法以后,給矩陣中的特定元素賦值也就成了一個很簡單的事情。下面舉例來說明。

【例2-8】?二維矩陣的賦值。

>> a=magic(4)

a =

??? 16???? 2????3??? 13

???? 5??? 11???10???? 8

???? 9???? 7????6??? 12

???? 4??? 14???15???? 1

>> a(3,4)=0??? %?對單個元素進行賦值

a =

??? 16???? 2????3??? 13

???? 5??? 11???10???? 8

???? 9???? 7????6???? 0

???? 4??? 14???15???? 1

>> a(:,1)=1?? %?對第一列進行賦值

a =

???? 1???? 2????3??? 13

???? 1??? 11???10???? 8

???? 1???? 7????6???? 0

???? 1??? 14???15???? 1

>> a(14)=16?????? %?采用全下標對第14個元素進行賦值

a =

???? 1???? 2????3??? 13

??? ?1???11??? 10???? 16

???? 1???? 7????6???? 0

???? 1??? 14???15??? 1

3.1?進行數組運算的常用函數

在MATLAB中有一些常用函數,這些函數在日常的編程計算過程中會經常遇到,一般是基本的數學概念在MATLAB中的函數表達方式。這些函數在MATLAB中可以同時作用于整個矩陣或者數組,應用起來非常方便,不需要再另寫循環程序來對各元素分別進行計算。掌握這些函數是進一步學習的基礎。MATLAB人性化的地方在于其自帶函數基本是按照相對應的英文名稱縮寫而來,所以便于記憶。

3.2 函數數組運算規則的定義

對于(m′n)的數組

,函數的數組運算規則是指:

?

也就是說函數的數組運算是指將函數作用于矩陣中的每一個元素,并將最后的結果儲存為與原矩陣行列數相同的矩陣。

3.3 進行數組運算的常用函數

本小節列出進行數組運算的常用函數。常用基本數學函數見表2-2,常用三角函數見表2-3,常用適用于向量的函數見表2-4。

表2-2??????? ?MATLAB常用的基本數學函數

函??? 數

說??? 明

函??? 數

說??? 明

abs(x)

純量的絕對值或向量的長度

rat(x)

將實數x化為分數表示

angle(z)

復數z的相角

sign(x)

符號函數?當x<0時,sign(x)=-1;?當x=0時,sign(x)=0; ?當x>0時,sign(x)=1

sqrt(x)

開平方

rem(x,y)

求x除以y的余數

real(z)

復數z的實部

gcd(x,y)

整數x和y的最大公因數

imag(z)

復數z的虛部

lcm(x,y)

整數x和y的最小公倍數

conj(z)

復數z的共軛復數

exp(x)

自然指數

round(x)

四舍五入至最近整數

pow2(x)

2的指數

fix(x)

無論正負,向0的方向取最近整數

log(x)

以e為底的對數,即自然對數

floor(x)

舍去法取最近整數

log2(x)

以2為底的對數

ceil(x)

進一法取最近整數

log10(x)

以10為底的對數

表2-3??????? MATLAB常用的三角函數

函??? ?數

說??? ?明

函??? ?數

說??? ?明

sin(x)

正弦函數

sinh(x)

超越正弦函數

cos(x)

余弦函數

cosh(x)

超越余弦函數

tan(x)

正切函數

tanh(x)

超越正切函數

asin(x)

反正弦函數

asinh(x)

反超越正弦函數

acos(x)

反余弦函數

acosh(x)

反超越余弦函數

atan(x)

反正切函數

atanh(x)

反超越正切函數

atan2(x,y)

四象限的反正切函數

??

表2-4????????適用于向量的常用函數

函??? ?數

說??? ?明

函??? ?數

說??? ?明

min(x)

向量x的元素的最小值

norm(x)

向量x的歐氏長度,也就是范數

max(x)

向量x的元素的最大值

sum(x)

向量x的元素總和

mean(x)

向量x的元素的平均值

prod(x)

向量x的元素總乘積

median(x)

向量x的元素的中位數

cumsum(x)

向量x的累計元素總和

std(x)

向量x的元素的標準差

cumprod(x)

向量x的累計元素總乘積

diff(x)

向量x的相鄰元素的差

dot(x, y)

向量x和y的內積

sort(x)

對向量x的元素進行排序

cross(x, y)

向量x和y的外積

【例2-9】? 數組運算示例。

>> a=[1 2 4 9;16 25 36 49]

a =

???? 1???? 2????4???? 9

??? 16??? 25???36??? 49

>> b=sqrt(a)???????????????????%??應用函數對矩陣中的每一個元素分別開方

b =

??? 1.0000??? 1.4142???2.0000??? 3.0000

??? 4.0000??? 5.0000???6.0000??? 7.0000

總結

以上是生活随笔為你收集整理的理工科毕业设计献礼,MATLAB从入门到精通之矩阵是如何实现寻访与赋值的的全部內容,希望文章能夠幫你解決所遇到的問題。

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