how to create binary matrix in matlab

112 visualizzazioni (ultimi 30 giorni)
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 Commenti
Erick Huelsz
Erick Huelsz il 11 Mag 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 il 11 Mag 2022
Modificato: Erick Huelsz il 11 Mag 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

Accedi per commentare.

Risposta accettata

KALYAN ACHARJYA
KALYAN ACHARJYA il 25 Apr 2019
Modificato: KALYAN ACHARJYA il 25 Apr 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.

Più risposte (2)

James Tursa
James Tursa il 25 Apr 2019
Modificato: James Tursa il 25 Apr 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 Commenti
Abdelmalek Benaimeur
Abdelmalek Benaimeur il 25 Apr 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 il 25 Apr 2019
Modificato: James Tursa il 25 Apr 2019
I assume by binary you really mean logical. Then simply
bin = (bin == '1')

Accedi per commentare.


Abdelmalek Benaimeur
Abdelmalek Benaimeur il 25 Apr 2019
please could you tell me what is the meaning of a<3 here : binary=(a<3)
  1 Commento
KALYAN ACHARJYA
KALYAN ACHARJYA il 25 Apr 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

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by