Arrays 循环cell2mat以将单元阵列转换为阵列

Arrays 循环cell2mat以将单元阵列转换为阵列,arrays,matlab,cell,cell-array,Arrays,Matlab,Cell,Cell Array,我有4865个1-by-1单元格数组,我需要通过cell2mat将它们转换为普通数组。当我运行它时,我得到以下错误: 在赋值A(I)=B中,B和I中的元素数必须相同 不能将整个矩阵(位于单元格中)分配给一个索引 让我们举下面的例子 >> cell_test ={[1 2 3;4 5 6],[1 2 3; 7 8 9]} cell_test = [2x3 double] [2x3 double] 你正在做的就是这个 >> cell_test{1} a

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

在赋值A(I)=B中,B和I中的元素数必须相同


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

让我们举下面的例子

>> 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

更新:structure method
B(i).data==cell_test{i}

您有4000个单元阵列还是一个包含4000个元素的单元阵列?
A
是一个包含4865个元素的单元数组,每个元素由一个
1
-by-
1
单元数组组成吗?每个单元格中都有什么?你不能将整个矩阵转换为向量的单个元素。你能告诉我们你的初始单元格数组实际包含什么吗?对于这种情况,请不要建议使用
eval
。等待OP澄清他们想要什么。这只是一个建议,如果你建议我将更新并添加一个保存到结构的方法谢谢你,Umar,它对我有效。你能给我看一下“保存到结构”的方法吗?太好了。我已经用structure方法更新了我的答案,如果我的答案对您有帮助,请接受我的答案。您可以通过构造字符串动态添加字段,而无需使用
eval
。避免使用它,因为这是不好的做法。
>> i = 1

i =

     1

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

B_1 =

     1     2     3
     4     5     6