MATLAB:isequal与表格一起使用

时间:2017-11-23 16:16:04

标签: matlab equality cell-array

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

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

isequal(a,b)

为什么结果为false?我希望表格相等(结果true)。

1 个答案:

答案 0 :(得分:4)

简短回答

单元格与其内容不同。尝试

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单元格单元格数组中的表格,所以它是一样的。