removing bad data from table

Hi,
I have a 41380 x 31 table
I am looking to see if the data is defined by temperature. The system has two temperature sensors 1 inside (1) and 1 outside (2). Every now and again one of the sensors (2) didnt work properly so I would like to remove any data when this occurred. When the inside temperature doesnt work properly it effects the processed results. I know that sensor 1 is the reliable sensor and sensor 2 is not. I would like to remove any data where sensor 2 was reading above 3 degrees than sensor 1. Can I use rmoutliers for this? If so how code it correctly to do so? Any other suggestions are welcome. I want to temporarily remove this data just to see if the results when processed correctly are temperature dependent.
this is what happens in my table now and again.

6 个评论

if sensor 1 is column 1 and sensor 2 is column 2 you can remove rows where column 2 is more than 3 degrees higher than column 1 by using
tbl(tbl(:,1)+3<=tbl(:,2),:)=[];
Hey, I get the following error when I try this:
Operator '+' is not supported for operands of type 'table'.
oh sorry, it is a matlab table, i thought it is an array and you call it table
then use
tbl(tbl{:,1}+3<=tbl{:,2},:)=[];
I converted the table to an array and tried the original code you suggested and it worked, thanks for you help!
@Jonas, can you transfer your "Comment" down to the official "Answer" section, where you can get credit (reputation points) for it?
Right now, your Answer is up here in the Comments section. The Comment section is used to ask posters to clarify their question, like to attach their variable(s) in a .mat file or something.
of course!

请先登录,再进行评论。

 采纳的回答

Jonas
Jonas 2021-5-15
编辑:Jonas 2021-5-15
for an array use
tbl(tbl(:,1)+3<=tbl(:,2),:)=[];
and for a matlab table use
tbl(tbl{:,1}+3<=tbl{:,2},:)=[];

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Data Type Conversion 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by