change only some cell values to a value of 1
8 views (last 30 days)
Show older comments
I want to change all the zeros in my cell to a value of 1. I know this could be done with a for and if statement, but is there anything that is faster?
Here is my data
[0,241,638,168]
[204,181,382,287;56,0,185,244]
[0,59,574,506]
[8,58,231,546]
[28,68,375,247]
[115,82,524,510]
Want it to look like this
[1,241,638,168]
[204,181,382,287;56,1,185,244]
[1,59,574,506]
[8,58,231,546]
[28,68,375,247]
[115,82,524,510]
Would it be some sort of cellfun() function?
Accepted Answer
Voss
on 12 Nov 2022
Yes, you can use cellfun with a helper function:
C = {
[0,241,638,168]
[204,181,382,287;56,0,185,244]
[0,59,574,506]
[8,58,231,546]
[28,68,375,247]
[115,82,524,510]
};
C_new = cellfun(@zeros2ones,C,'UniformOutput',false)
function A = zeros2ones(A)
A(A == 0) = 1;
end
0 Comments
More Answers (0)
See Also
Categories
Find more on Cell Arrays 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!