我有一个单元格数组(16x5),我想提取单元格数组每列中保存的所有值,并将它们放入矩阵中的列中,以便保留列(即每个列的新矩阵列)单元阵列)。
这样做的最佳方式是什么?
我试过了:
for k=1:Samples
data(k,:) = [dist{:,k}];
end
但是这会返回错误
Subscripted assignment dimension mismatch.
但是我不确定为什么。
EDIT - 单元阵列结构:
答案 0 :(得分:1)
由于您的循环代码有效,我认为错误是由于data
预分配的维度与逗号扩展dist
列的长度不匹配(Matlab将使用显式索引生成矩阵)但不是:
运算符)。
您只需要在以逗号分隔的扩展后获取数据的长度:
nElem = numel([dist{:,1}]);
Samples = size(dist,2);
data = zeros(Samples,nElem);
for k=1:Samples
data(k,:) = [dist{:,k}];
end
或者如果你想在列中
data = zeros(nElem,Samples);
for k=1:Samples
data(:,k) = [dist{:,k}]';
end