循环 cell2mat 以将元胞数组转换为数组

looping cell2mat to convert cell arrays to arrays

我有 4865 个 1-by-1 元胞数组,我需要通过 cell2mat 将它们转换为普通数组。当我 运行 它时,我收到以下错误:

In an assignment A(I) = B, the number of elements in B and I must be the same.

for i=1:4865,

    c(i) = cell2mat(A(i))

end

您不能将整个矩阵(位于一个单元格中)分配给一个索引

举个例子

>> cell_test ={[1 2 3;4 5 6],[1 2 3; 7 8 9]}

cell_test = 

    [2x3 double]    [2x3 double]

你正在做的是这个

>> cell_test{1}

ans =

     1     2     3
     4     5     6

>> b(1) = cell_test{1}
Subscripted assignment dimension mismatch.

其中一个选项是通过 eval() 为每个新索引创建一个新变量名当然还有许多其他选项

>> i = 1

i =

     1

eval(['B_',num2str(i)  ,'=cell_test{i}'])

B_1 =

     1     2     3
     4     5     6

更新:结构方法B(i).data = =cell_test{i}