将矩阵拆分为多个列

时间:2016-03-23 18:55:23

标签: matlab matrix vector multiple-columns

假设我有两个列矩阵M=[0,1;2,3;4,5],我想将它们同时拆分为两个向量。我想要做的是[A,B] = M所以A=[0;2;4]B=[1;3;5],但这不起作用。 有没有办法在一行代码中做到这一点?我的实际矩阵有大约20列,所以将它们存储在一行中会很棒!

1 个答案:

答案 0 :(得分:4)

最简单的方法是num2celldeal的组合。

M = rand(4,2);

    0.8173    0.2599
    0.8687    0.8001
    0.0844    0.4314
    0.3998    0.9106


inputData = num2cell(M, 1);
[A, B] = deal(inputData{:});


A =

    0.8173
    0.8687
    0.0844
    0.3998

B =

    0.2599
    0.8001
    0.4314
    0.9106

或者,作为suggested by Daniel,您可以省略deal

[A, B] = inputData{:};

话虽如此,当你得到更多元素时,只需将它们留在单元格数组中,而不是试图处理20个变量。

columns = num2cell(M, 1);

    [4x1 double]    [4x1 double]