MATLAB是行特定的还是列特定的?

时间:2014-01-28 17:56:30

标签: matlab matrix

在MATLAB中,我们可以对矩阵的行和列进行操作。 “行特定或列特定”的含义是什么?我很抱歉这个天真的问题。 谢谢!

2 个答案:

答案 0 :(得分:30)

重要的是要理解MATLAB将数据存储在column-major order中,因此您知道在应用colon运算符时没有逗号的情况会发生什么:

>> M = magic(3)
M =
     8     1     6
     3     5     7
     4     9     2
>> M(:)
ans =
     8
     3
     4
     1
     5
     9
     6
     7
     2

我倾向于认为“MATLAB下降,然后跨越”。这样,reshapepermute数组就可以轻松加载数据。为了掌握线性索引(例如M(4)),这也是必要的。

例如,从生成数组的某个表达式获取内联列向量的常用方法是:

reshape(<array expression>,[],1)

(:)一样,对于任何更高维度的所有数据,这将所有列彼此叠加成单列向量。  但是这个漂亮的句法技巧可以避免额外的代码行。

答案 1 :(得分:5)

在MATLAB中,数组以列主要顺序存储。

这意味着当你有一个多维数组时,它在内存中的1D表示使得最左边的索引变化得更快。

它被称为主要顺序,因为对于2D数组(矩阵),第一个(最左边)索引通常是行索引,因此它的变化速度快于第二个(紧邻右侧) index,矩阵的1D表示是内存对应于矩阵的的串联。