2016-02-21 130 views
-2

我正在學習matlab。我想從一個更大的陣列創建一個更小的陣列。我知道如何用簡單的列或行來做到這一點,但是我錯過了m x n陣列/矩陣的術語。如何創建矩陣是更大的矩陣的子集

原始矩陣= 10×9 mat_original=ones(10,9)事實上,而不是使用所有的人。這可能更有意義..讓使用mat_original = magic(10)

如何創建一個組件矩陣的行5〜8(說所有列)? mat_rows5to8 = mat_original[5 thru 8; :]

如何創建一個組件矩陣,列2至5,說(所有行?) mat_cols2to5 = mat_original[: ; 2 thru 5 ]

,最後我將如何創建一個子組件陣列...說行4通7,第5到第9列? mat_small = mat_original[ 4 thru 7; 5 thru 9 ]

你怎麼記得這東西?

+1

@AndrasDeak,爲什麼降級?這個陳述絕對無益,而且寫得不好? (我應該提供所有的搜索條件,我以前沒有找到答案之前張貼在這裏嗎?記住,你只能是一個Matlab處女一次...... Matlab virgins使用通用搜索術語來自非常廣義的領域,不一定使用相同的搜索術語由經驗豐富的老兵......)我是否更好地刪除這個整個問題,或者它對未來的其他人有價值嗎? – zipzit

回答

1

當您擁有Google時,無需記住任何事物:Matrix Indexing in MATLAB

問題的答案:

  1. mat_rows5to10 = mat_original(5:8,:)
  2. mat_cols2to5 = mat_original(:,2:5)
  3. mat_small = mat_original(4:7,5:9)

換句話說:

  • output = input(<row_first>:<row_last>,<col_first>:<col_last>)
  • 保留所有參數。
+0

Thx,我一直陷在[obtuse matlab幫助頁面](http://www.mathworks.com/help/matlab/math/creating-and-concatenating-matrices.html) – zipzit

+0

啊,是的,有時候會更好閱讀爲初學者編寫的文檔,因爲技術文檔旨在提高綜合性(並且失去初學者)。 –

+0

我從來沒有意識到複選標記上有一個計時器是可以接受的答案。似乎設定在15分鐘。 – zipzit