removing irrelevant datasets from variable

i have a data set of size Data{301*4090}. From this data set I want to remove data which is less than a particular range. So I start analyzing the Data(1) and check if the values are less than -500 or greater than 500 I should keep this data set otherwise I should eliminate this data set.
So I use a nested for loop first which runs from 1 to 301 and second which runs from 1 to 4090. I use a if condition to check for the above conditions.
for i = 1:1:len(1)
for j = 1:1:4090
if (newsensorData(i,j)<=-500)||(newsensorData(i,j)>=500)
modsensorData(i,j) = newsensorData(i,j);
else
sprintf('This data is not relevant for further processing');
end
end
end
My problem is I want that if in Data(1) my condition is fulfilled I should stop checking Data(1) and then check Data(2).
How do I make this work. Please excuse me if I did not frame my question properly.
Thanks.

5 Kommentare

José-Luis
José-Luis am 21 Mai 2013
Bearbeitet: José-Luis am 21 Mai 2013
What are Data(1) and Data(2)? The only variables that are defined in your code are newsensorData and modsensorData
Jatin Arora
Jatin Arora am 21 Mai 2013
Sorry Jose newsensorData is my initial variable {301*4090} and modsensorData is what I am trying to save.
José-Luis
José-Luis am 21 Mai 2013
Bearbeitet: José-Luis am 21 Mai 2013
I still don't understand what you are trying to do. Is it what Walter suggests? Also, you didn't really answer my question. What are Data(1) and Data(2)?
What does Data{1} look like? Are you aware that the curly braces {} are normally used in the context of cell arrays?
newsensorData is my variable of dimensions 301*4090. I framed the question by using imaginary variables Data, Data(1) and Data(2) but i copied the same code as it was in my MATLAB. I apologize for this confusion.
I have modified the code and now I think it works fine
len = size(newsensorData)
for i = 1:1:len(1)
for j = 1000:1:4000
if (newsensorData(i,j)<=-500)||(newsensorData(i,j)>=500)
modsensorData(i,1000:4000) = newsensorData(i,1000:4000);
end
end
end
José-Luis
José-Luis am 21 Mai 2013
Maybe it's just one of those days, but I just don't get what you are trying to do. Anyway, I'm glad it worked out for you.

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Walter Roberson
Walter Roberson am 21 Mai 2013

0 Stimmen

if condition
...
else
fprintf('This data is not relevant for further processing');
break; %notice this!
end
Iain
Iain am 21 Mai 2013

0 Stimmen

IgnoredValue = NaN; % (or 0, or inf, or some known bad value)
modsensorData = newsensorData;
modsensorData(modsensorData > 500) = IgnoredValue;
modsensorData(modsensorData < -500) = IgnoredValue;

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 21 Mai 2013

Community Treasure Hunt

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

Start Hunting!

Translated by