Matlab:从Matrix创建平面结构

时间:2014-01-06 20:21:40

标签: matlab

我有一个CELL数组A格式:

  Month      Var1    Var2       Type 
  Q1-14      2.60   -1.50E+04    I 
  Q1-15      1.50   -2.20E+04    II 
  Q1-14      1.40   -2.50E+05    I 
  Q1-15      8.50   -2.90E+05    II 

我想创建以下格式:

  Month      Type    Des     Value 
  Q1-14      I       Var1    2.60 
  Q1-15      II      Var1    1.50 
  Q1-14      I       Var1    1.40 
  Q1-15      II      Var1    8.50 
  Q1-14      I       Var2   -1.50E+04
  Q1-15      II      Var2   -2.20E+04
  Q1-14      I       Var2   -2.50E+05
  Q1-15      II      Var2   -2.90E+05

我必须在Matlab中这样做。我可以运行for循环来实现这一目标,但我想要更清洁的东西。

1 个答案:

答案 0 :(得分:1)

嗯,毕竟这不是一个优雅的解决方案,但鉴于你想要的答案的结构,这是我能想到的:

sz=size(A,1);
newA(:,1)=[A(:,1);A(2:end,1)];
newA(:,2)=[A(:,4);A(2:end,4)]
newA(:,3)=['Des';repmat(A(1,2),sz-1,1);repmat(A(1,3),sz-1,1)];
newA(:,4)=['Value';A(2:end,2);A(2:end,3)];