Hello, If I have a string, S = 001000110111 Given:
a = 0
b = 10
c = 110
d = 111
I need to convert the string using that key.
So converted_S = aabaacd
How can I do this? Thanks.

 Akzeptierte Antwort

Grzegorz Knor
Grzegorz Knor am 20 Mär. 2012

0 Stimmen

S = '001000110111';
a = '0';
b = '10';
c = '110';
d = '111';
S = strrep(S,d,'d');
S = strrep(S,c,'c');
S = strrep(S,b,'b');
S = strrep(S,a,'a')

5 Kommentare

Brandon
Brandon am 20 Mär. 2012
Nice solution, but this doesn't quite work without error. My actual string is 256,000 characters, with this I get a string with length 258,446. Seems like strrep doesn't go in order.
Brandon
Brandon am 20 Mär. 2012
Example:
X = 'aabdcaaabcdcdba';
W = '001011111000010110111110111100';
This code produces:
W = 'aabdddaaaabcdddaddaa'
Brandon
Brandon am 20 Mär. 2012
Figured it out! Use regexprep instead of strrep. Thanks for leading me in the right direction, much better than the for loop I was trying to use.
Grzegorz Knor
Grzegorz Knor am 20 Mär. 2012
regexp works correctly in this case :) strrep first looks for patterns, and then replace it.
Abirami
Abirami am 14 Aug. 2014
hello, i need to do the same thing for a 256x256 matrix...pls help...

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

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

Produkte

Gefragt:

am 20 Mär. 2012

Kommentiert:

am 14 Aug. 2014

Community Treasure Hunt

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

Start Hunting!

Translated by