循环cell2mat将单元格数组转换为数组

时间:2016-06-08 12:47:25

标签: arrays matlab cell cell-array

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

  

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

for i=1:4865,

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

end

1 个答案:

答案 0 :(得分:1)

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

让我们采取以下示例

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