關於MATLAB陣列指令涵義的問題。很基礎的幾道題。求幫助 10

2025-03-20 22:40:22 字數 3144 閱讀 8205

關於matlab陣列指令涵義的問題。很基礎的幾道題。求幫助

1樓:網友

這些都屬於很基礎的內容,建議樓主自己生成乙個矩陣,然後執行這些命令,看結果是怎樣的,好好體會一下。

1)a(3,2):

提取矩陣的第3行、第2列元素。

2)a(9):

提取矩陣的第9個元素(也就是第3行、第3列)。

3)a(1:3:10):

提取矩陣的第個元素(也就是第1行)。

4)a([1,2],[2,3]):

提取矩陣的第1~2行、第2~3列的4個元素構成子矩陣。

5)a(:,4,3]):

提取矩陣的第列元素構成子矩陣。

6)a([1 1 2],:

提取矩陣的第行元素構成子矩陣。

7)a(a>3):

提取矩陣值大於3的元素構成列向量。

8)a(end:-2:1,:)

提取矩陣的第3行和第1行元素構成子矩陣 。

9)a([1 3 5 2 4]):

提取矩陣的第個元素構成子矩陣。

10)reshape(a,4,3):

把矩陣變成4x3的矩陣。

需要說明的幾點:

1)matlab矩陣的元素可以用行、列兩個下標索引,也可以用單個下標索引,此時會把矩陣看成乙個向量。值得注意的是,matlab陣列是以列序為主序的(和fortran相同,但不同於c),也就是說,a(2)

指的是a(2,1)

而不是a(1,2)

第題都涉及這個問題。

2)第7題的a>3

得到結果是邏輯陣列,作為下標使用時,表示提取邏輯真的那些位置。

3)end作為陣列下標使用時,表示其所在維的長度,例如,第8題出現在行下標中,就表示3。

4)陣列下標出現單獨的冒號(

作用等同於1:end,即該維的所有值,例如第5題的冒號表示所有行,第題的冒號表示所有列。

例如:> a=reshape(1:12,[3 4])a =

3 遊敬世 6 9 12

a(1:3:10)ans =

a([1,2],[2,3])ans =

a(:,4,3])ans =

a([1 1 2],:ans =

神肢2 5 8 11

a(a>3)ans =

a(end:-2:1,:)ans =

a([1 3 5 2 4])ans =

reshape(a,4,3)ans =

稿侍 4 8 12

2樓:靚為過

儲存成 並執行。

a = reshape(1:12,3,4) %構造a矩陣。

ans1 = a(3,2)

ans2 = a(9)

ans3 = a(1:3:10)

ans4 = a([1,2],[2,3])ans5 = a(:,4,3])

ans6 = a([1 1 2],:

ans7 = a(a>3)

ans8 = a(end:-2:1,:)

ans9 = a([1 3 5 2 4])ans10 = reshape(a,4,3)以下是結果:a =

ans1 =

ans2 =

ans3 =

ans4 =

ans5 =

ans6 =

ans7 =

ans8 =

ans9 =

ans10 =

matlab邏輯陣列怎麼用?請看下面的程式段。

3樓:易禾侯英飆

選擇陣列中的資料有兩種方法,一種是直接用下標選取,這是我們平時最常用的方法。比如a([1

另一種使用邏輯陣列選取,很多人都不知道這種方法。

這種方法要求陣列和邏輯陣列的元素個數相等,比如a是陣列,n是邏輯陣列,則a(n)就是取a中與n為真的元素相對應的元素。比如a([1

0])就是取a的第個元素,和a([1

4])等價。

這種方法對於刪選資料非常有效,比如要選擇a中大於5的元素,很多人都必須呼叫find函式,但其實直接用a(a>5)即可,消尺孫運算速度也比呼叫困搭find函式要快得多。

回到你的程式中,因為b=a>5000,因此a(b)就是選擇a中所有大於5000的元素,於是a(b)=sqrt(a(b))就是將a中所有大拿鏈於5000的元素開平方。

小弟我最近學matlab,陣列那節老是遇到冒號,誰能幫我詳細解釋一下這「:」怎麼用啊?

4樓:網友

冒號可以理解為「到」的意思,2:end就是從2開始,2 3 4 5 6 ..直最後乙個。

arr4(2:end,2:end) ,這句意思是取陣列arr4的第2行和第2列以後的,(就是去掉arr4的第一行第一列)

另外比如1:2:9, 你可以自己在matlab裡面輸入看結果, 結果是。

ans=這冒號的意思很簡單吧,意思是從1開始,每隔2取值,直到9(這裡中間的2就叫步長,前面的2:end實際上是指以1為步長,以1為步長的時候可以簡寫,3:9=3 4 5 6 7 8 9 )

比如你前面的arr4(2:end,2:end),要取第2 5 8..直到最後列,所有行的數,語法為。

arr4(:,2:3:end)

這裡的第乙個冒號意思是所有行。

要取第2 5 8..直到最後行,所有列的數,語法為。

arr4(2:3:end,:)

可以自己驗證。冒號在陣列中的操作基本上就是這些。

5樓:網友

arr4(2:end,2:end)

指矩陣arr4的第2行到最後一行,第二列到最後一列(即除去第一行第一列後的矩陣)

表示式常見就兩種。

a:b從a到b(以1為間隔)如1:3表示[1,2,3]a:s:b

從a到b(以s為間隔)如1:2:5表示[1,3,5]

6樓:成百家之言

比如2:10就表示1,2,3...10,就是表示從一到十。2:end表示從2到結束。

7樓:只由飛之冬

這就是求的陣列arr4中第2行到最後一行,第2列到最後 一列的資料。

matlab中,陣列和字串陣列的區別。將陣列轉化為字串陣列到底什麼意思是

二者的組成不同 陣列的組成元素是複數,字串陣列的組成元素是數字字串 二者的精度不同,陣列表示的數都是近似值,字串陣列表示的值都是精確值。例如陣列的1 3表示為0.3333,字串陣列表示的是1 3。二者的運算不同,比如陣列有 等運算,但字串陣列只有 和 兩種運算。字串陣列中還有許多數值運算中所沒有的特...

關於c語言陣列的運算,關於C語言陣列的運算。

首先你可以進行單步測試自己看看能不能學習到過程 程式設計師以後寫程式排錯 要學會自己單步測試找問題 過程很簡單 你定義了一個1維陣列 陣列長度為10 從a 0 a 9 進行for迴圈計算 i 9 a 9 10 9 1 同理 a8 2 a5 5 a2 8 所以輸出 a2,a5,a8 分別就是852 希...

關於EXCEL陣列的問題

這裡涉及到陣列運算。b53 c63是一個11行2列陣列,一個陣列與一個值比較,結果是一個11行2列的邏輯陣列。如b53 c63 60,若b53大於等於60就是true,否則就是false,同樣c53大於等於60為true,否則為false,依次比較下去。按你的例子就得到以下陣列。轉換成 形式可看的更...