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))?

 Akzeptierte Antwort

Azzi Abdelmalek
Azzi Abdelmalek am 19 Apr. 2016
Bearbeitet: Azzi Abdelmalek am 19 Apr. 2016

0 Stimmen

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 Kommentare

Ying Wai Wong
Ying Wai Wong am 19 Apr. 2016
I am new to Matlab. What is idx mean? There is idx = 231412344.....etc
Azzi Abdelmalek
Azzi Abdelmalek am 19 Apr. 2016
Bearbeitet: Azzi Abdelmalek am 19 Apr. 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 am 19 Apr. 2016
ahh yes, cheers mate! and if i want to change d to 1 how can i do it?
strrep(out,'d','1')

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Characters and Strings finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by