我有一个目标温度和实际温度的表格(表1):
Time Target actual diffrence
____ ______ ______ _________
1 40 40.2 0.2
2 40 41 1
3 40 40.3 0.3
我想创建一个只包含差异< = 0.5。
的行的表所以目标看起来应该是这样的(table2):
Time Target actual
____ ______ ______
1 40 40.2
3 40 40.3
我不知道如何创建一个解决我问题的循环。 我试图在for循环中创建一个if循环:
for n = 1:3
if difference(n) <= 0.5
table2 = table(table1.Time(n), table1.Target(n), table1.actual(n))
end
end
但是当我执行时,我的table3只包含第三行。
3 40 40.3
有人可以帮我创建循环吗? (也许我的循环总是覆盖table3并且只保存最后一次迭代?)
答案 0 :(得分:1)
您对问题的分析是正确的。循环中的语句只是将table2
的值设置为符合条件的最新行。
根本不需要使用循环。根据{{1}}列创建一个布尔掩码:
difference
然后,您可以使用掩码作为索引选择整个表的子集:
mask = table1{:, 4} > 0.5;
您甚至可以将两条线合并为一条:
table2 = table1{mask, 1:3};