Matlab 如何从单元阵列创建双精度?

Matlab 如何从单元阵列创建双精度?,matlab,cell-array,Matlab,Cell Array,我想问一下,是否有更有效的代码来执行以下任务: a = cell(10,1); for i = 1 : 10 a{i,1} = randn(200,5); end for j =1:5 b{j} = [a{1,1}(:,j) a{2,1}(:,j) a{3,1}(:,j) a{4,1}(:,j) a{5,1}(:,j)]; end 谢谢大家! 您的解决方案工作正常。这稍微紧凑一些(并且更容易推广)。如果所有单元格都包含相同大小的矩阵,则可以将它们合并到一个矩阵中,并每n个单元格拾取一列:

我想问一下,是否有更有效的代码来执行以下任务:

a = cell(10,1); 

for i = 1 : 10
a{i,1} = randn(200,5);
end

for j =1:5
b{j} = [a{1,1}(:,j) a{2,1}(:,j) a{3,1}(:,j) a{4,1}(:,j) a{5,1}(:,j)];
end

谢谢大家!

您的解决方案工作正常。这稍微紧凑一些(并且更容易推广)。如果所有单元格都包含相同大小的矩阵,则可以将它们合并到一个矩阵中,并每n个单元格拾取一列:

for i = 1 : 10
    a{i,1} = randn(200,5);
end

% Transform first five cells in one big matrix
c = cat(2,(a{1:5}));
n = size(a{1} , 2);

b = cell(5,1);
for j =1:5
    % Take one column every 5 (or every "n" in general)
    b{j} = c(: , 1:n:end );
end

是否所有单元格都包含相同大小的矩阵?是的,每个单元格都包含一个尺寸为200x5的矩阵