加载保存的元胞数组而不是结构

Loading a saved cell array not as struct

我有一个关于在 Matlab 中加载元胞数组的问题。我读过类似的问题,但其中 none 解决了我的问题! 我的工作区中有一个大小为 {400*350} 的元胞数组。我像往常一样保存了这个元胞数组:

save ('myoutput.mat','cell_array');

然后我尝试重新加载这个mat文件。我用过:

3D_coordinates = load ('myoutput.mat');

当这个 mat 文件加载到我的工作区时,它转换为大小为 1*1 的结构文件。我必须单击它,在结构文件内部有一个单元格。当我点击那个单元格时,我的整个单元格数组就出现了!这意味着我的整个单元格数组位于结构变量内的一个单元格中!然后我假设通过将结构转换为单元格我可以访问我的整个数组。

cell_array = struct2cell(3D_coordinates);

但没有任何改变!我的 cell_array 大小仍然是 1*1,里面有一个单元格,当我点击那个单元格时,整个单元格数组就会出现!!! 我想像保存之前一样直接访问工作区中的整个单元阵列!我该怎么做?

就这样:

coordinates = load('myoutput.mat');
cell_array = coordinates.cell_array

其中 coordinates 是加载 .mat 文件后得到的 structcell_array 是包含的元胞数组的名称。

注意Matlab中的变量名不能以数字开头!


您可以使用 importdata 而不是 load 来保存一行并直接获取元胞数组:

cell_array = importdata('myoutput.mat')