主要使用单元格阵列在2维中工作,这可能是您熟悉的主题:
a{1,1}=rand(5,1);
a{2,1}=rand(10,1);
b=cell2mat(a);
size(b)
其输出大小为[15 1]
。但是我会发现这样的示例结果更有用:
0.150 0.340 0.610 0.190 0.740 NaN NaN NaN NaN NaN
0.240 0.920 0.270 0.770 0.190 0.290 0.090 0.580 0.680 0.550
是否有一种用NaNs填充cellarray的通用方法(以与上面类似的方式),因此它们可以很容易地转换为矩阵?
由于图形上存在很多混淆(请原谅我的绘图技巧)我的意思是,1,2描绘单元阵列,3是NaN填充。 1,2,3组合应易于转换为矩阵。
答案 0 :(得分:1)
% find the long vector
isLong=(length(a{2,1})>length(a{1,1}))+1;
isShort=setdiff([1 2],isLong);
% result
b=[a{isLong,1} [a{isShort,1};nan(length(a{isLong,1})-length(a{isShort,1}),1)]]
b =
0.0796 0.6440
0.7326 0.4967
0.5137 0.9919
0.5223 0.7241
0.8144 0.3799
0.8346 NaN
0.9469 NaN
0.4866 NaN
0.1802 NaN
0.1786 NaN