Matlab 如何清空手机

Matlab 如何清空手机,matlab,Matlab,我有一个包含大量NaN的单元格数组。但是无论出于什么原因,isnan函数都无法检测到它们(因此这不起作用cellfun(@(Iarray)any(isnan(Iarray)),Iarray);),所以我认为实际上是字符串包含了NaN 我在这个数组上执行两件事:清理空行和空列,以及删除NaN(我们正在尝试) 因此,我想用空单元格替换所有NaN,然后使用isempty函数执行清理所有空单元格的操作。我将使用一个循环,如果char(x(I,j))='NaN' 所以我的问题来了,我想清空一个单元格,然后

我有一个包含大量NaN的单元格数组。但是无论出于什么原因,
isnan
函数都无法检测到它们(因此这不起作用
cellfun(@(Iarray)any(isnan(Iarray)),Iarray);
),所以我认为实际上是字符串包含了
NaN

我在这个数组上执行两件事:清理空行和空列,以及删除NaN(我们正在尝试)

因此,我想用空单元格替换所有NaN,然后使用
isempty
函数执行清理所有空单元格的操作。我将使用一个循环,如果char(x(I,j))='NaN'

所以我的问题来了,我想清空一个单元格,然后用
isempty
函数检测这个单元格,但我不知道如何。我试过
x(1,2)=[]
x(1,2)={[]}
x(1,2)='
,但是没有一个给出
1
I
是空的(x(1,2))

有人知道如何解决我的问题吗?
提前谢谢

如果要清空单元格内容,可以使用:

x{1,2} = [];
使用括号
()
和括号
{}
编制索引是有区别的。您可以将单元格数组视为一个单元格数组,每个单元格包含一个值,如
1、2、[]
。当使用括号对单元格进行索引时,它将以单元格的形式返回结果(或者更准确地说是以单元格类型数组的形式),但当使用括号对单元格进行索引时,它将返回单元格的内容(或者更准确地说是以包含索引单元格内容的数组的形式返回)。所以当你写这样一个表达式时:

x(1,2) = [];
它从单元格数组中删除第二个元素,其行为类似于索引其他数组类型。例如,当您要删除
a=[1 2 3]
的第二个元素时,可以使用
a(2)=[]

但是当你写
x{1,2}=[]
它访问单元格的内容,并将其设置为空的double类型的空数组
[0 x 0]

同样地,
a={}
是一个单元格的
[0 x 0]
空数组,
b={[]}
是一个单元格的
[1 x 1]
数组,其第一个元素包含一个double类型的空数组
[0 x 0]
。当您使用
isempty(b)
时,它返回
false
,因为它包含一个元素;当您使用
isempty(b(1))
时,它返回
false
,因为
b(1)
返回一个包含元素的单元格数组;但当您使用
isempty(b{1})时,它返回
true
,因为
{}
运算符提取第一个空数组单元格的内容


简而言之,可以使用
()
{}
访问单元格,并且根据情况
[]
具有不同的功能:
a)
删除元素
b)
空数组。

尝试
x{1,2}=[]
@rahnema1 ohh!我还必须将
{}
放入
isempty
函数中!非常感谢。“你能把你的评论写在答案里,这样我就可以接受了吗?”亚瑟·特鲁尔。但是我想我的问题更多的是发现我必须把{}放在
isempty
函数中,当然!请看答案。@JackA这就是为什么我看到你的评论时立即收回了重复标志。很好的解释!