MATLAB:isequal与表格结合使用

MATLAB:isequal与表格结合使用,matlab,equality,cell-array,Matlab,Equality,Cell Array,我试图确定两个表的相等性。通常,isequal应该与表一起使用。但是,当其中一个要比较的表是单元格的内容时,我会收到一个意外的结果。看看这个: a{1} = table(1,2,3); b = a{1}; isequal(a,b) 为什么结果为false?我希望表是相等的(结果true)。简短回答 单元格与其内容不同。试一试 isequal(a{1},b) 长话短说 澄清: a是一个1×1单元阵列 a(1)是它的第一个单元格。在这种情况下,这与a相同,因为a是1×1 a{1}是第一个单元

我试图确定两个表的相等性。通常,
isequal
应该与表一起使用。但是,当其中一个要比较的表是单元格的内容时,我会收到一个意外的结果。看看这个:

a{1} = table(1,2,3);
b = a{1};

isequal(a,b)
为什么结果
为false
?我希望表是相等的(结果
true
)。

简短回答 单元格与其内容不同。试一试

isequal(a{1},b)
长话短说 澄清:

  • a
    是一个1×1单元阵列
  • a(1)
    是它的第一个单元格。在这种情况下,这与
    a
    相同,因为
    a
    是1×1
  • a{1}
    是第一个单元格的内容,即表
因此,
isequal(a{1},b)
给出了
true
,因为它比较了两个表,而这些表实际上是相等的

另一方面,
isequal(a,b)
给出了
false
,因为
a
是一个包含表的单元格,
b
是一个表

还请注意

isequal(a,{b})
将给出
true
,因为
a
是一个包含表
b
的1×1单元格数组,
{b}
是一个1×1单元格数组中的表,所以它是相同的。

简短回答 单元格与其内容不同。试一试

isequal(a{1},b)
长话短说 澄清:

  • a
    是一个1×1单元阵列
  • a(1)
    是它的第一个单元格。在这种情况下,这与
    a
    相同,因为
    a
    是1×1
  • a{1}
    是第一个单元格的内容,即表
因此,
isequal(a{1},b)
给出了
true
,因为它比较了两个表,而这些表实际上是相等的

另一方面,
isequal(a,b)
给出了
false
,因为
a
是一个包含表的单元格,
b
是一个表

还请注意

isequal(a,{b})

将给出
true
,因为
a
是一个包含表
b
的1×1单元格数组,
{b}
是该表打包到1×1单元格数组中,所以它是相同的。

你完全正确。你的简短回答告诉了我很多。多么愚蠢的错误啊。对不起,浪费了你的时间@我没问题!这个解释可能对其他人有用+1个好答案。通过简短的回答快速洞察,但从长远来看,描述很有帮助。这是一个典型的答案,你完全正确。你的简短回答告诉了我很多。多么愚蠢的错误啊。对不起,浪费了你的时间@我没问题!这个解释可能对其他人有用+1个好答案。通过简短的回答快速洞察,但从长远来看,描述很有帮助。这是一个典型的答案。