how to create binary matrix in matlab

hello,
I'm wondering how to create a binary matrix in matlab
and how to convert a matrix from decimal to binary and from binary to decimal

4 comentarios

James Tursa
James Tursa el 25 de Abr. de 2019
Please give a short example of what you mean by decimal and binary matrix, and what the conversion would be for this example.
Abdelmalek Benaimeur
Abdelmalek Benaimeur el 25 de Abr. de 2019
for example
dec=[1;2;3;4;5]
bin=[0001;
0010;
0011;
0100;
0101]
is this possible ?
Erick Huelsz
Erick Huelsz el 11 de Mayo de 2022
I am sure there must be an easier way, but so far I managed to do this with the info I found:
D=[1,2,3,4,5]
l=length(D)
for i=1:l
bin = '0000000000';
bin = [bin dec2bin(D(i))];
b=(bin(end-l+1:end))=='1';
M(i,1:l)=b;
end
M
Erick Huelsz
Erick Huelsz el 11 de Mayo de 2022
Editada: Erick Huelsz el 11 de Mayo de 2022
yeah, there was a little easier way:
D2=[1,2,3,4,5]
l=length(D2)
for i=1:l
b=dec2bin(D2(i))
b=b-48
M2(i,l+1-length(b):l)=b
end

Iniciar sesión para comentar.

 Respuesta aceptada

KALYAN ACHARJYA
KALYAN ACHARJYA el 25 de Abr. de 2019
Editada: KALYAN ACHARJYA el 25 de Abr. de 2019
For the First part of the question please refer to link here (@Walter Roberson's answer)
Second part, this is broad way to express-
Here I trying one example, please look
>> a=randi(5,5)
a =
1 5 2 5 4
5 5 4 4 4
3 3 2 2 5
5 2 4 4 5
4 1 1 2 2
>> binary=(a<3)
binary =
1 0 1 0 0
0 0 0 0 0
0 0 1 1 0
0 1 0 0 0
0 1 1 1 1
Here this is logical expression
If you are talking to decimal to binary, as processor do the computaion in binary values only, all decimal elements convert to binary as general. I hope you know the procedure.

Más respuestas (2)

James Tursa
James Tursa el 25 de Abr. de 2019
Editada: James Tursa el 25 de Abr. de 2019
>> dec=[1;2;3;4;5];
>> bin = dec2bin(dec,4)
bin =
0001
0010
0011
0100
0101
>> bin2dec(bin)
ans =
1
2
3
4
5

5 comentarios

Abdelmalek Benaimeur
Abdelmalek Benaimeur el 25 de Abr. de 2019
thaaaaaaaaaaaank you
Abdelmalek Benaimeur
Abdelmalek Benaimeur el 25 de Abr. de 2019
i have one more question if possible ?
let's suppose that i have this matrix
A=[0001
0010;
0011;
0100;
0101]
how can i define it to matlab so that it will be reconized as binary matrix and not double ?
James Tursa
James Tursa el 25 de Abr. de 2019
Editada: James Tursa el 25 de Abr. de 2019
How is A in your example above a double? Do you mean you want to input it as written above where 0010 would be "ten" as a double, but then turn around and re-interpret it as a binary character array? I.e., something like this?
bin = reshape(sprintf('%04d',A),4,[])'
Abdelmalek Benaimeur
Abdelmalek Benaimeur el 25 de Abr. de 2019
no what i meant is
let's take the same example
dec=[1;2;3;4;5];
the class of this vector is : double
when i do this
bin = dec2bin(dec,4)
i obtain char array like this
bin =
5×4 char array
'0001'
'0010'
'0011'
'0100'
'0101'
my question is when converting from dec to bin
how can i obtain the result in a matrix and not a char array
so that matlab reconize that the elements of this matrix are binary and not double
James Tursa
James Tursa el 25 de Abr. de 2019
Editada: James Tursa el 25 de Abr. de 2019
I assume by binary you really mean logical. Then simply
bin = (bin == '1')

Iniciar sesión para comentar.

Abdelmalek Benaimeur
Abdelmalek Benaimeur el 25 de Abr. de 2019

0 votos

please could you tell me what is the meaning of a<3 here : binary=(a<3)

1 comentario

KALYAN ACHARJYA
KALYAN ACHARJYA el 25 de Abr. de 2019
This is logical representation, all elements of a, which are less than 3 are true (1) and others false. Please response on @James Tursa comment

Iniciar sesión para comentar.

Categorías

Etiquetas

Preguntada:

el 25 de Abr. de 2019

Editada:

el 11 de Mayo de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by