从包含混合数据的 3D 元胞数组中删除空页
Delete empty pages from a 3D cell array with mixed data
我有一个包含混合数据的 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))
我有一个包含混合数据的 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))