當前位置:編程學習大全網 - 編程語言 - 關於MATLAB數組指令涵義的問題。很基礎的幾道題。求幫助

關於MATLAB數組指令涵義的問題。很基礎的幾道題。求幫助

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

(1)A(3,2):提取矩陣的第3行、第2列元素。

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

(3)A(1:3:10):提取矩陣的第1、4、7、10個元素(也就是第1行)。

(4)A([1,2],[2,3]):提取矩陣的第1~2行、第2~3列的4個元素構成子矩陣。

(5)A(:,[4,3]):提取矩陣的第4、3列元素構成子矩陣。

(6)A([1 1 2],:):提取矩陣的第1、1、2行元素構成子矩陣。

(7)A(A>3):提取矩陣值大於3的元素構成列向量。

(8)A(end:-2:1,:):提取矩陣的第3行和第1行元素構成子矩陣 。

(9)A([1 3 5 2 4]):提取矩陣的第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、3、7、9、10題都涉及這個問題。

(2)第7題的A>3得到結果是邏輯數組,作為下標使用時,表示提取邏輯真的那些位置。

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

(4)數組下標出現單獨的冒號(:)作用等同於1:end,即該維的所有值,例如第5題的冒號表示所有行,第6、8題的冒號表示所有列。

例如:

>>?A=reshape(1:12,[3?4])

A?=

1?4?710

2?5?811

3?6?912?

>>?A(1:3:10)

ans?=

1?4?710

>>?A([1,2],[2,3])

ans?=

4?7

5?8

>>?A(:,[4,3])

ans?=

10?7

11?8

12?9

>>?A([1?1?2],:)

ans?=

1?4?710

1?4?710

2?5?811

>>?A(A>3)

ans?=

4

5

6

7

8

9

10

11

12

>>?A(end:-2:1,:)

ans?=

3?6?912

1?4?710

>>?A([1?3?5?2?4])

ans?=

1?3?5?2?4

>>?reshape(A,4,3)

ans?=

1?5?9

2?610

3?711

4?812

  • 上一篇:貝殼編程百度雲
  • 下一篇:相較於口頭講述故事,數字故事采用了哪些獨有的手段
  • copyright 2024編程學習大全網