How can i assign 00 to -3d, 01 to -d, 11 to +d, 10 to +3d if i have a binary string x = char('0' + (rand(1, 1000) < 0.5))?

 Réponse acceptée

Azzi Abdelmalek
Azzi Abdelmalek le 19 Avr 2016
Modifié(e) : Azzi Abdelmalek le 19 Avr 2016
x = char('0' + (rand(1, 1000) < 0.5))
a={'-3d' '-d' '+d' '+3d'}
idx=bin2dec(reshape(x,2,[])')+1
out=a(idx)
If you want to join them
out=strjoin(a(idx),'')

4 commentaires

Ying Wai Wong
Ying Wai Wong le 19 Avr 2016
I am new to Matlab. What is idx mean? There is idx = 231412344.....etc
Azzi Abdelmalek
Azzi Abdelmalek le 19 Avr 2016
Modifié(e) : Azzi Abdelmalek le 19 Avr 2016
There is an error;
a={'-3d' '-d' '+3d' '+d'}
You have
00 corresponds to index idx=1
01 corresponds to index idx=2
10 corresponds to index idx=3
11 corresponds to index idx=4
Ying Wai Wong
Ying Wai Wong le 19 Avr 2016
ahh yes, cheers mate! and if i want to change d to 1 how can i do it?
strrep(out,'d','1')

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Characters and Strings dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by