Extend a string within a for loop by values from switch case

조회 수: 2 (최근 30일)
Christian
Christian 2021년 5월 10일
편집: Dyuman Joshi 2021년 5월 10일
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.

채택된 답변

Dyuman Joshi
Dyuman Joshi 2021년 5월 10일
편집: Dyuman Joshi 2021년 5월 10일
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.
You can join strings using join(), or horzcat() (you can also use [ ] to concatenate strings, ['a' 'b'] = 'ab')

추가 답변 (1개)

Stephen23
Stephen23 2021년 5월 10일
편집: Stephen23 2021년 5월 10일
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 = "0000100010000000001000001"
out = [rpl{Y(X)}] % char vector
out = '0000100010000000001000001'

카테고리

Help CenterFile Exchange에서 Characters and Strings에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by