Extend a string within a for loop by values from switch case
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Christian
le 10 Mai 2021
Modifié(e) : Dyuman Joshi
le 10 Mai 2021
This switch case works in c. With each pass, the loop finds a letter and assigns it to a binary sequence. The nice thing is, each new binary sequence is simply added (by: +=) to an existing string. Does this also work in matlab?
for (int i = 0; i < sizeInput; i++) {
switch (inputText[i]) {
case ' ':
outputText+= "00000";
break;
case 'A':
outputText+= "00001";
break;
case 'B':
outputText+= "00010";
break;
}
}
For example the inputText is: AB BA, the result should look like: 0000100010000000001000001
I hope you can help me with this.
0 commentaires
Réponse acceptée
Dyuman Joshi
le 10 Mai 2021
Modifié(e) : Dyuman Joshi
le 10 Mai 2021
No, MATLAB doesn't support Augmented addition, (using +=)
However, you can obtain the same result with a variable, x=x+1; and use dec2bin(x).
If you add strings together in MATLAB, it will give a double (default MATLAB numeric format) output corresponding to the ASCII codes.
Plus de réponses (1)
Stephen23
le 10 Mai 2021
Modifié(e) : Stephen23
le 10 Mai 2021
Forget about C.
The MATLAB approach is to work with vectors and matrices (which is where the name MATLAB comes from):
inp = 'AB BA';
vec = ' AB';
rpl = ["00000","00001","00010"];
[X,Y] = ismember(inp,vec);
out = join(rpl(Y(X)),'') % string scalar
out = [rpl{Y(X)}] % char vector
0 commentaires
Voir également
Catégories
En savoir plus sur Characters and Strings dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!