相关疑难解决方法(0)

如何检测单元阵列中的空单元格?

如何检测单元阵列中的空单元格?我知道删除空单元格的命令是a(1) = [],但我似乎无法让MATLAB自动检测哪些单元格为空.

背景:我预先分配了一个单元格数组a=cell(1,53).然后我使用if exist(filename(i))和textscan来检查文件,并将其读入.结果,当filename(i)不存在时,会产生一个空单元格,然后我们移动到下一个文件.

当我读完所有文件后,我想删除空单元格a.我试过了if a(i)==[]

matlab cell-array is-empty

34
推荐指数
1
解决办法
9万
查看次数

在MATLAB中的cell2mat之前用逻辑0替换空单元格

我有一个空单元格数组和一些我想要转换为逻辑数组的单元格,其中空单元格为零.当我使用cell2mat时,空单元格被忽略,我最终得到一个只有1的矩阵,没有引用它们持有的先前索引.有没有办法在不使用循环的情况下执行此操作?

示例代码:

for n=1:5              %generate sample cell array
    mycellarray{n}=1;
end
mycellarray{2}=[]      %remove one value for testing
Run Code Online (Sandbox Code Playgroud)

我试过的事情:

mylogicalarray=logical(cell2mat(mycellarray));
Run Code Online (Sandbox Code Playgroud)

这导致[1,1,1,1],而不是[1,0,1,1,1].

for n=1:length(mycellarray)
    if isempty(mycellarray{n})
       mycellarray{n}=0;
    end
end
mylogicalarray=logical(cell2mat(mycellarray));
Run Code Online (Sandbox Code Playgroud)

哪个有效,但使用循环.

matlab matrix cell-array is-empty

17
推荐指数
2
解决办法
4万
查看次数

标签 统计

cell-array ×2

is-empty ×2

matlab ×2

matrix ×1