Convert logical values into numeric values
439 views (last 30 days)
Show older comments
I have a cell array 20000 rows and 20 columns with logical values:
A={0 0 0 0 1 0...
0 0 1 0 0 0
1 0 0 0 0 0
0 1 0 0 0 0 ...}
And I would like to convert this array into numeric values of 1 and 0. Can someone help me? Thank you.
0 Comments
Accepted Answer
Star Strider
on 19 Aug 2014
This works:
B = double(cell2mat(A));
The cell2mat call converts it from a cell to a logical array, and double converts it to a double array.
0 Comments
More Answers (3)
chaman lal dewangan
on 13 Mar 2018
Edited: chaman lal dewangan
on 13 Mar 2018
I wrote small code
for a=1:number of rows
for b=1:number of columns
if A(a,b)==true
new_matrix(a,b)=1;
else
new_matrix(a,b)=0;
end
end
end
2 Comments
James Tursa
on 13 Mar 2018
Edited: James Tursa
on 13 Mar 2018
This doesn't work either. Have you tried it?
??? Undefined function or method 'eq' for input arguments of type 'cell'.
Julotek
on 21 Mar 2018
for a=1:number of rows
for b=1:number of columns
if A{a,b}
new_matrix(a,b)=1;
else
new_matrix(a,b)=0;
end
end
end
That should work but it is maybe too complicated for you need.
Jonathan Patao
on 12 Mar 2018
Edited: Jonathan Patao
on 13 Mar 2018
Try this:
B = cell2mat(A).*1;
4 Comments
Jonathan Patao
on 13 Mar 2018
you're right, my fault. you need to convert from cell first. try:
B = cell2mat(A).*1;
See Also
Categories
Find more on Data Type Conversion in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!