版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012314976/article/details/78606398
matlab,意思是matrix lab
,即矩阵实验室。在matlab中,基础变量即为矩阵。一个整数可以认为是一个1x1的矩阵,行向量和列向量可以当做是行数为1和列数为1的矩阵。
基于这样一个前提,对于代数一类问题的计算,相当便利。在C语言中,如果想要求出两个矩阵的和,我们可能需要编写如下代码:
int A[M][N]=...;
int B[M][N]=...;
int C[M][N];
int i,j;
for(i=0;i<M;i++){
for(j=0;j<N;j++){
C[i][j] = A[i][j]+B[i][j];
}
}
代码不是很长,但是在做循环时,需要小心编写,比如可能会把i
,j
搞错。而在matlab中,你只需要编写代码:
C=A+B;
是不是超级简单!
在高等代数中,矩阵的相关计算已经被充分讨论了,一些结论我们可以直接在matlab中使用。
矩阵的数乘
A=magic(3);
B=10*A;
矩阵相加
A=rand(3,4); %生成3行4列的随机矩阵
B=ones(3,4); %生成3行4列的矩阵,其中每一个位置的值均为1
C=A+B;
矩阵相乘
A=rand(3,3); % 3x3的随机矩阵
B=eye(3); % 3x3的单位矩阵
C=A*B; % A与B相乘后得到C,可以预料C和A相等
矩阵相除
AX=B
X=A^-1*B
转换成矩阵相乘
矩阵转秩
A=rand(3,5); % 3x5的随机矩阵
B=A'; % 5x3的矩阵,对A的转秩
计算矩阵的逆
A=magic(3);
B=A^-1; % 计算矩阵A的逆
B=inv(A); % 计算矩阵A的逆
取出矩阵的一部分作为新的矩阵
A=magic(4);
A(1,:) % 取矩阵A中的第一行
A(:,2) % 取矩阵A中的第二列
A(2:4,2:4) % 取矩阵A右下角的3x3的矩阵,第2行到第4行,第2列到第4列