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
错误是由于您正在尝试比较两组具有不同大小的数据(S1
和 S2
)。
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
我有两个具有相同变量的 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
错误是由于您正在尝试比较两组具有不同大小的数据(S1
和 S2
)。
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