matlab - 从包含混合数据的 3D 元胞数组中删除空页

标签 matlab 3d cell-array

我有一个包含混合数据的 3D 元胞数组。其中还有空单元格。在第三维中也有只有空单元格的 mxn 数组。我想删除那些:

C(:,:,1) = {'A' 'B'; [] []; 'C' 'D'};     
C(:,:,2) = {[] []; [] []; [] []};
C(:,:,3) = {[] 1; 2 []; [] 3};

should become

C(:,:,1) = {'A' 'B'; [] []; 'C' 'D'}
C(:,:,2) = {[] 1; 2 []; [] 3}

到目前为止我有这个解决方案

C1 = C(:,find(~all(cellfun('isempty',C),1)));
old_m = size(C,1);
old_n = size(C1,2)/size(C,2);
reshape(C1,old_m,old_n,[]);

我的意思是它基本上只有两行代码。我只是想知道是否有更优雅或更有效的方法?

谢谢

最佳答案

这个-

C(:,:,~all(all(cellfun('isempty',C),1),2))

或者这个 -

C(:,:,any(any(~cellfun('isempty',C),1),2))

关于matlab - 从包含混合数据的 3D 元胞数组中删除空页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28582071/

相关文章:

matlab - 'does matrix contain value X?' 函数

c++ - OpenCV 中是否有类似 MATLAB 的 'impixelinfo()' 的功能?

javascript - Three.js 网格调整大小

html - Webkit 3D 透视错误

matlab - 将 2 行合并到一个元胞数组中

matlab - 如何以优雅的方式编写此代码(MATLAB 中的元胞数组和结构体)

MATLAB - 两个图像的直方图匹配

python - 变换矩阵

iOS5 和 OpenGL ES 2.0 最佳编译器

matlab - 根据 Matlab 中单元格的现有列创建新变量