Assigning a value to 0's

Hey
I have a ColumnA(108x1), this column has values when B(say) is ON. But non-zeros are present for only 104rows, 4rows are still zeros(the lousy data).
What I am trying to do is replace these 0's to a large value or NaN so that it doesn't affect my code later down. However, now Column A exists for Test 1, when B is ON. Also, I get a new ColumnA for Test 2 when B is OFF, where all rows are 0.
I was thinking of doing a cursory check for 0's at the beginning 5-10 rows and create a NewColumnA if the conditioned is satisfied. But wasn't sure how to complete it.
So, something like an "iszero" function for rows 1 to 10 should do it for a NewColumnA. Would "find", to find the number of 0's, do it?

2 comentarios

Image Analyst
Image Analyst el 4 de Abr. de 2012
So A is nonzero for B = ON or B = OFF, and A = 0 for B = lousy data. What are the ranges of B for the 3 cases: (1) ON, (2) OFF, and (3) lousy data?
Ferd
Ferd el 4 de Abr. de 2012
I have A, that has non-zero values when B=ON, but in the same test, when B=ON, I have some values of A as 0(bad data, measurement limitation). I have to filter out these bad data zeros. For B=OFF, A has all zeros.
For example,
B=1, A=[1,2,3,4,5,6,7,0,0,0](say), those 3 zeros have to filtered, keeping the same length.
B=0, A=[0,0,0,0,0,0,0,0,0,0], currenty using the entire array A for plots.

Iniciar sesión para comentar.

 Respuesta aceptada

Honglei Chen
Honglei Chen el 4 de Abr. de 2012

0 votos

Since ColumnA is a column, you can do
ColumnA(ColumnA==0) = nan

3 comentarios

Ferd
Ferd el 4 de Abr. de 2012
Correct, suppose for Test 2, I need the zero's to remain as they are so I know B is OFF.
How I have my code setup is to read the ColumnA and accordingly complete plots when B is ON or OFF. But, it works only when either ColumnA is completely filled with non-zero's or zeros. But this ColumnA when B is ON(ideally it would be best for the testdata to be all non-zeros) also has a few zero's which screws up my plots.
Thanks
Honglei Chen
Honglei Chen el 4 de Abr. de 2012
Will the following work?
if ~all(ColumnA==0)
ColumnA(ColumnA==0) = nan;
end
Ferd
Ferd el 4 de Abr. de 2012
Yup! This is exactly what I am thought.
Now, this "NaN", would it affect calculations where B = ON (those zeros changed to NaN). I am trying it though.
Thanks Honglei!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Etiquetas

Preguntada:

el 4 de Abr. de 2012

Community Treasure Hunt

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

Start Hunting!

Translated by