2016-02-21 136 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