How to replace a number with 0 in an array
Show older comments
How to replace a number in a column with 0? I want to replace all 0.5 values in a column with 0
Accepted Answer
More Answers (1)
Jos (10584)
on 12 Feb 2016
A = [1 2 3 ; 0.5 0.5 2 ; 0.5 5 6] % example data
C = A(:,1)
tf = C == 0.5
A(tf,1) = 0
% or in one line:
% A(A(:,1)==0.5,1) = 0
5 Comments
Lilja Dahl
on 12 Feb 2016
Lilja Dahl
on 12 Feb 2016
dpb
on 12 Feb 2016
Just replace the RHS of the assignment with whatever is wanted; only restriction is you'll have to have saved the logical vector to known how many elements are needed to generate the proper number for the assignment. A constant is propagated automagically across any size target; multiple assignment on RHS must be conformant in size to the target on the LHS.
vanam sindhuja
on 7 Sep 2020
Can I know the significance of tf.
...
tf = C == 0.5
A(tf,1) = 0
...
tf is the logical addressing vector; the variable name chosen to represent true|false as indicator it is a logical array.
As a subscripting expression, MATLAB returns only the locations in the referenced array for which elements in the indexing expression return TRUE
Categories
Find more on Variables in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!