拉直的定义
拉直是矩阵的一种常见的运算,拉直运算之后,矩阵变为了一个mn维的列向量。
MATLAB中进行拉直运算
在MATLAB中可以直接调用vec函数进行拉直运算
a=vec(A);
注意得到的是列向量
MATLAB 中将向量恢复出矩阵
下面使用MATLAB实现从拉直的向量恢复出原来的矩阵。
设计思路: 从列向量中找到矩阵的维数,然后从新给矩阵赋值,注意新矩阵的值是按行进行赋值,然后将矩阵输出。
下面这个例子是恢复成方阵,如果行列不等的时候,只需将循环的N修改一下即可实现。
function A=fanlazhi(a)
% A 表示矩阵 a表示向量
[hang,lie] = size(a);
N=sqrt(hang);
%行列不等的时候修改N的计算方式
t=0;
for i=1:N
for j=1:N
A(i,j)=a(j+N*j);
end
t=t+1;
%矩阵换行
end
end
测试代码运行
输入列向量a;
输出矩阵A。
结果如下: