matlab怎么将一个m行n列的矩阵表示成m个一行n列的向量

你好,我想把一个m行n列的矩阵用m个一行n列的向量来表示。
例如,x=[1,2,3;4,5,6;7,8,9],我想用y(1)=[1,2,3],y(2)=[4,5,6],y(3)=[7,8,9],用y向量来表示x,即x=[y1;y2;y3]来表示,而且一共是200行153列,估计要用循环,请问怎么编写程序?
盼回!

为什么要这样表示呢?MATLAB可以帮助你随时提取你想要的那一列
比如x=[1,2,3;4,5,6;7,8,9];
那么y1=x(1,:);
y2=x(2,:);
y3=x(3,:);

如果你要用到每一行,不妨这样:
for i=1:size(x,1)
y=x(i,:);
%这里你随便添语句

end来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-09-19
% 使用 reshape(X ,m,n)函数
% 先了解一下reshape的基本用法
% 简而言之就是将矩阵X—>m*n的新矩阵
% 例如:将 3*4的A矩阵—>2*6的B矩阵
A =[1    4    7    10
    2    5    8    11
    3    6    9    12];

B = reshape(A,2,6);
% 等价于 B = reshape(A(:),2,6)
% 等价于 B = reshape(A(:),2,[])


% 上面运行结果为
B =[ 1     3     5     7     9    11
     2     4     6     8    10    12];
 
% 分析:
% 因为 MATLAB会将A转换成A(:)
% 按列输出 A(:)=[1,2,3,4,5,6,7,8,9,10,11,12];
% 对B,注意B是2行6列,同样MATLAB会按列输入
% B =[ 1     3     .     .     .    11
%      2     .     .     .    10    12];

% 你说的意思,是不是矩阵A的每一列,按列元素拍在一行?
% 第一种方法:
    C = reshape(A,1,[]);
% 第二种方法:
    C=A(:)';

 由于没能完全理解题主的意思,题主可以根据我说的,按照reshape函数来解决问题

第2个回答  2016-06-30
一,整体介绍,已知一个m行n列的矩阵,记为A,我们要将它每一行表示为一个向量
二,所需工具,MATLAB
三,步骤:
1,获取矩阵维度:[m,n]=size(A);
2,矩阵A的第i个行向量表示为:A(i,:)。其中,i 是大于等于1,并且小于等于m的整数
第3个回答  2016-07-24
这个我建议直接读取它的行,比如我要读取A[1,2,3;4,5,6;7,8,9]的第二行,MATLAB命令为A(2,:)。要读去第一行,MATLAB命令为A(1,:)。
如果你要读取第一列的话,MATLAB命令为A(:,1)
第4个回答  2016-06-28
如果矩阵A是m 行 n列,而你想将其转置为n行m列,则使用reshape函数:
B = reshape(A, n, m)
这样就把A转成n行,m列的矩阵B了