String Matlab从单元阵列中删除空单元

String Matlab从单元阵列中删除空单元,string,matlab,cell-array,String,Matlab,Cell Array,我有一个像这样的细胞阵列 lists = {240x1 cell} {240x1 cell} 它包含字母字符串,而不是数字 只有200个单元格有实际内容,所以我需要截断单元格,去掉空单元格 现在,list(cellfun('isempty',list))=[]不起作用,也不适用于arrayfun。将'isempty'更改为@isempty也不起作用。但是,如果我将列表的每个单元格分隔成一个单元格,就像这样a=lists{1},那么cellfun过程就可以工作了 请注意,我并不

我有一个像这样的细胞阵列

lists = 

    {240x1 cell}    {240x1 cell}
它包含字母字符串,而不是数字

只有200个单元格有实际内容,所以我需要截断单元格,去掉空单元格

现在,
list(cellfun('isempty',list))=[]不起作用,也不适用于
arrayfun
。将
'isempty'
更改为
@isempty
也不起作用。但是,如果我将列表的每个单元格分隔成一个单元格,就像这样
a=lists{1}
,那么
cellfun
过程就可以工作了

请注意,我并不是在寻找一种解决方案,用于240个单元格中有200个单元格包含内容的特定情况


FWY,列表是
textscan
吐出的数组的子集。问题是,初始
textscan
输出中的某些列确实有240个内容单元格,因此
textscan
只是默认为所有列的长度。

循环遍历单元格,我假设您不需要递归执行此操作

for i = numel(list):-1:1
    list{i}(cellfun(@isempty, list{i})) = [];
end

循环遍历单元格,我假设您不需要递归地执行此操作

for i = numel(list):-1:1
    list{i}(cellfun(@isempty, list{i})) = [];
end

循环遍历单元格,我假设您不需要递归地执行此操作

for i = numel(list):-1:1
    list{i}(cellfun(@isempty, list{i})) = [];
end

循环遍历单元格,我假设您不需要递归地执行此操作

for i = numel(list):-1:1
    list{i}(cellfun(@isempty, list{i})) = [];
end

您需要调用
cellfun
两次,一次调用
列表,一次调用其元素

cellfun(@(x) x(~cellfun('isempty', x)), lists, 'uni', 0)

您需要调用
cellfun
两次,一次调用
列表,一次调用其元素

cellfun(@(x) x(~cellfun('isempty', x)), lists, 'uni', 0)

您需要调用
cellfun
两次,一次调用
列表,一次调用其元素

cellfun(@(x) x(~cellfun('isempty', x)), lists, 'uni', 0)

您需要调用
cellfun
两次,一次调用
列表,一次调用其元素

cellfun(@(x) x(~cellfun('isempty', x)), lists, 'uni', 0)