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