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

Mas*_*ked 19 matlab matrix

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

cha*_*pjc 31

重要的是要理解MATLAB按列主要顺序存储数据,因此您知道在应用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
Run Code Online (Sandbox Code Playgroud)

我倾向于认为"MATLAB下降,然后跨越".这可以很容易地reshapepermute阵列,而不扰乱你的数据.为了掌握线性索引(例如M(4)),也是必要的.

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

reshape(<array expression>,[],1)
Run Code Online (Sandbox Code Playgroud)

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

  • 那个简单的句子"MATLAB下来,然后跨越",最后给了我一种记住MATLAB索引规则的方法.我一直试图记住超过6年这个简单的事实大声笑.谢谢! (7认同)

Sim*_*mon 6

在MATLAB中,数组按列主要顺序存储.

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

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