Table 比较来自非单元格数组对象的单元格内容引用

Table comparison cell content reference from non cell array object

我有两个具有相同变量的 table。一个 table 包含一行,而另一个 table 包含多行。

    a=[1 2; 2 3],b=[2 3; 1 2]
     S1=table(a,b)
    a=[1 1],b=[1 1]
    S2=table(a,b)
    if all(S2{:,:}<S1{:,:}) & any(S2{:,:}<=S1{:,:})
    S1=[S1;S2]
    end

指定table或单元格的错误在哪里?即使转换 table2cell、table2struct、table2array 也不起作用(显示 getvar 错误)。

Table 值是固定的。没有添加,没有替换,只有条件满足时才追加。最终输出为 table,其值如图所示。

S1 = 3×2 table 
  a        b
______ ______ 
 1 2       2 3
 2 3       1 2 
 1 1       1 1

错误是由于您正在尝试比较两组具有不同大小的数据(S1S2)。

S2{:,:}
     1     1     1     1
S1{:,:}
     1     2     2     3
     2     3     1     2

如果您想将 S1 的每一行与 S2 进行比较,您可以使用函数 bsxfun:

检查S2 < S1

bsxfun(@lt,S2{:,:},S1{:,:})

检查S2 <= S1

bsxfun(@le,S2{:,:},S1{:,:})

这将导致:

if all(bsxfun(@lt,S2{:,:},S1{:,:})) & any(bsxfun(@le,S2{:,:},S1{:,:}))
   S1=[S1;S2]
end