MATLAB: isequal 结合表格
MATLAB: isequal in conjunction with tables
我正在尝试确定两个表的相等性。通常,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}
是第一个单元格的内容,即一个table.
所以isequal(a{1},b)
给出true
,因为它比较了两个table,而那些table确实是相等的。
另一方面,isequal(a,b)
给出 false
,因为 a
是一个包含 table 的单元格,而 b
是一个 table。
另请注意
isequal(a,{b})
会给出 true
,因为 a
是一个包含 table b
的 1×1 元胞数组,而 {b}
是 table 打包成1×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}
是第一个单元格的内容,即一个table.
所以isequal(a{1},b)
给出true
,因为它比较了两个table,而那些table确实是相等的。
另一方面,isequal(a,b)
给出 false
,因为 a
是一个包含 table 的单元格,而 b
是一个 table。
另请注意
isequal(a,{b})
会给出 true
,因为 a
是一个包含 table b
的 1×1 元胞数组,而 {b}
是 table 打包成1×1的元胞元胞数组,所以是一样的