MATLAB是行特定的还是列主要的?
在MATLAB中,我们可以对矩阵的行和列进行运算。“行主键”或“列主键”的确切含义是什么?在MATLAB中,数组以列主键顺序存储 这意味着,当你有一个多维数组时,它在内存中的一维表示形式使得最左边的索引变化得更快MATLAB是行特定的还是列主要的?,matlab,matrix,Matlab,Matrix,在MATLAB中,我们可以对矩阵的行和列进行运算。“行主键”或“列主键”的确切含义是什么?在MATLAB中,数组以列主键顺序存储 这意味着,当你有一个多维数组时,它在内存中的一维表示形式使得最左边的索引变化得更快 之所以称为列主顺序,是因为对于2D数组(矩阵),第一个(最左边的)索引通常是行索引,因此,由于它的变化速度比第二个(右边旁边的)索引快,矩阵的1D表示是对应于矩阵列串联的内存。了解MATLAB将数据存储在中是很重要的,这样您就可以知道在不使用任何逗号的情况下应用冒号操作符时会发生什么:
之所以称为列主顺序,是因为对于2D数组(矩阵),第一个(最左边的)索引通常是行索引,因此,由于它的变化速度比第二个(右边旁边的)索引快,矩阵的1D表示是对应于矩阵列串联的内存。了解MATLAB将数据存储在中是很重要的,这样您就可以知道在不使用任何逗号的情况下应用
冒号操作符时会发生什么:
>> 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下降,然后穿过”。这使得重塑
和排列
数组变得容易,而不会扰乱数据。为了掌握线性索引(例如M(4)
),这也是必要的
例如,从生成数组的某个表达式内联获取列向量的常用方法是:
reshape(<array expression>,[],1)
重塑(,[],1)
与(:)
一样,对于任何更高维度中的所有数据,这会将所有列相互堆叠成单个列向量。
但是这个巧妙的语法技巧让你避免了额外的一行代码。你的意思是“行主要”和“列主要”?这句简单的句子“MATLAB向下,然后穿过”,终于让我记住了MATLAB的索引规则。我已经试着记住这个简单的事实6年多了,哈哈。谢谢!