Assigning a value to 0's

9 次查看(过去 30 天)
Ferd
Ferd 2012-4-4
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 个评论
Image Analyst
Image Analyst 2012-4-4
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 2012-4-4
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.

请先登录,再进行评论。

采纳的回答

Honglei Chen
Honglei Chen 2012-4-4
Since ColumnA is a column, you can do
ColumnA(ColumnA==0) = nan
  3 个评论
Honglei Chen
Honglei Chen 2012-4-4
Will the following work?
if ~all(ColumnA==0)
ColumnA(ColumnA==0) = nan;
end
Ferd
Ferd 2012-4-4
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!

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Testing Frameworks 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by