How to turn a Yes/No cell array into binary (0-1)

I have a Yes/No cell array of 4000x1 and want to turn it into a binary system
Thanks for your attention

Respuestas (2)

A = {true,false;false,true}
A = 2×2 cell array
{[1]} {[0]} {[0]} {[1]}
B = cell2mat(A)
B = 2×2 logical array
1 0 0 1

5 comentarios

It is a Yes No cell array but some of them display NA. At the moment I try to use cell2mat y mentions the following:
Error using cat
Dimensions of arrays being concatenated are not consistent.
Error in cell2mat (line 83)
m{n} = cat(1,c{:,n});
Error in BAR_CHART (line 19)
C_2 = cell2mat(B_2);
Thanks
Jon
Jon el 5 de Jul. de 2022
Please save your array to a .mat file and attach it so that I can see exactly what you have
If your data are character arrays, with the words yes or no you can do this
A = {'Yes','no';'no','yes'}
A = 2×2 cell array
{'Yes'} {'no' } {'no' } {'yes'}
B = strcmpi(A,'yes') % use strcmpi rather than strcmp so it will be case insensitive
B = 2×2 logical array
1 0 0 1
When you say that your matrix contains NA, does that stand for Not Applicable. Since the result is binary true or false you can't have a binary array that has three kinds of values, so you have to pick either true or false for the NA's. The above code will work however it will consider NA to be false. If you want them to be true, you could do something like
B = strcmpi(A,'yes')|strcmpi(A,'NA')
Jon
Jon el 6 de Jul. de 2022
Did this solve your problem? If so please accept the answer so others will know that a solution is available

Iniciar sesión para comentar.

m = {true,false;false,true};
for i = 1:numel(m)
disp(m(i))
end
{[1]} {[0]} {[0]} {[1]}

Categorías

Productos

Versión

R2020b

Etiquetas

Preguntada:

el 5 de Jul. de 2022

Respondida:

el 6 de Jul. de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by