Arrays 循环cell2mat以将单元阵列转换为阵列
我有4865个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
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