如何在Matlab中将n×n矩阵转换为对应的行矩阵?
在Matlab中将矩阵转换为行矩阵的实用方法
刚好碰到过类似需求,这里给你两种简单可靠的实现方式,完全匹配你要的按行顺序拼接的效果:
首先先把你给出的原始矩阵定义出来(方便测试):
A = [7.0000 26.0000 6.0000 60.0000 78.5000; 1.0000 29.0000 15.0000 52.0000 74.3000; 11.0000 56.0000 8.0000 20.0000 104.3000];
方法1:兼容所有Matlab版本的通用写法
这个方法不管你用的是老版本还是新版本Matlab都能生效,核心是先把矩阵转置,让原来的行变成列,再用reshape把它拉成一行:
row_matrix = reshape(A', 1, []);
运行后得到的row_matrix就是你想要的按原矩阵行顺序拼接的行向量。
方法2:Matlab R2018a及以上版本的简化写法
如果你的Matlab版本比较新(R2018a及以后),可以直接用reshape的'RowMajor'参数指定按行优先展开,省去转置的步骤:
row_matrix = reshape(A, 1, [], 'RowMajor');
注意点
别用A(:)'!这个写法是按列优先展开矩阵,得到的结果会是先取第一列所有元素,再第二列,和你要的行顺序完全相反,一定要避开这个坑。
内容的提问来源于stack exchange,提问作者N.Chandimali
相关产品推荐
相关产品推荐

