矩阵和数组有什么区别?

时间:2015-03-12 21:45:15

标签: matlab math

更普遍的术语是什么? 为什么MATLAB命名为矩阵实验室呢?

3 个答案:

答案 0 :(得分:7)

矩阵是一种实用的方法,用于表示从维度 n 的空间到维度 m 的空间的线性转换,其形式为 nxm < / em>标量值数组。

以非常系统的方式执行线性代数运算也是非常实用的,可以在计算机上实现。例如,如果矩阵 A 表示线性变换 f 和矩阵 B 线性变换 g ,那么组合< em> f o g 写为A * B,其中*表示矩阵乘法。 Matlab还有许多与矩阵运算相关的例程(即线性代数运算),如detpinvsvd等......

正如您现在仍然可以在Matlab中看到的那样,*/之类的运算符与矩阵运算密切相关,因而与线性代数运算密切相关,我认为这是matlab的最初目标。它的早期阐述,因此它的名字(肯定是相当猜测,但猜测离现实不远)。

要对n维数据集执行逐元素操作,您必须编写.*./。表示您现在正在执行阵列操作

我不会说数组操作包含矩阵运算,它们是不同的。后者与线性代数有关,而其他则只涉及对大型数据集进行操作的实用方法。这些数据不限于数字,它们只是n维数据集(字符串,数字,单元格等)。

Matlab还有一个非常合成的语法来对子块(即线性/逻辑下标)执行数组操作,这使得在应用后续代码之前只需在一行代码中重新组织数据集非常容易矩阵数组操作。

答案 1 :(得分:5)

如果你问的是MATLAB,那么单词&#34; matrix&#34;通常是指一个二维数组,而一个&#34;数组&#34;可以是n维的。

早期版本的MATLAB仅支持2d矩阵,而不支持n维数组。我相信在MATLAB的第5版中引入了对n维数组的支持。

答案 2 :(得分:0)

如果你比较c样式的数组,例如double array[],或者Java数组,例如double arry2[],我会说MATLABs矩阵是一种更高级的数组。我还要说matlab矩阵比c ++向量或Java ArrayList更适合数学目的。但是,如果你的意思是matlab数组,我会说它更复杂。然后,我会推荐关于matlab data的链接,该链接描述mxArray类型,用于存储matlab中的大部分数据。如果没有更好地描述你对数组的意思,这个问题很难完全回答,但我会说,关于类型,像a = [1,2,3,4]这样的数组和像b = [1,2,3,4;5,6,7,8]这样的矩阵没有区别。还可以存在更高维度的矩阵c = ones(3,4,3)。这些在MATLAB中通常也称为矩阵,或者如果您需要更具体的N维矩阵。