I have three different strings and are putting them together in an array. The result is simply the three strings combined. However, I want to put spaces between each string. I tried doing this:
a = 'str1'
b = 'str2'
c = 'str3'
x = [a,'',b,'',c]
but that doesn't do anything so how would I put spaces then?

 채택된 답변

Image Analyst
Image Analyst 2013년 3월 17일
편집: Image Analyst 2013년 3월 17일

3 개 추천

Your '' is just a null string - no space was between the quotes - so that's why no space was inserted. I really like using sprintf() for building up strings. A way using sprintf:
x = sprintf('%s %s %s', a, b, c);
Note the spaces in between the %s. That will make spaces in the final output string.

댓글 수: 5

Joe
Joe 2013년 3월 17일
I tried that code, but ended up getting an empty array
Joe, you did something wrong. Here, I just copied and pasted my code:
clc;
a = 'str1'
b = 'str2'
c = 'str3'
% sprintf() method:
x = sprintf('%s %s %s', a, b, c)
% Concatenation method:
x = [a, ' ', b, ' ', c]
and now I copy and paste the command window:
a =
str1
b =
str2
c =
str3
x =
str1 str2 str3
x =
str1 str2 str3
You can certainly see that it is not empty. Is your a, b, and c cell arrays, not character strings? What does this say:
>> whos a
Joe
Joe 2013년 3월 17일
Oh I see what was wrong, I got it to work! Thanks for the help!
Hi Image Analyst! I want the spaces between the characters I stored in an array using a for loop.
for j=1:5
turn(j)='t';
end
It gives this result,
turn =
tttt
How can I insert spaces between these 't's? I tried using this, but it gives error.
for j=1:5
turn(j)='t ';
end
Saim, I'm not sure why you got 4 t's. I got 5. Anyway to put a space after each t, do this:
for j=1:5
turn(j*2-1)='t';
turn(j*2)=' ';
end
turn % Display in command window.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Luke Perry
Luke Perry 2018년 8월 29일

0 개 추천

Image Analyst's code is absolutely correct, but to add on, here is how to fix your original code:
a = 'str1';
b = 'str2';
c = 'str3';
x = [a,' ',b,' ',c]
x =
>>'str1 str2 str3'
notice the '' was turned into ' '. That is, a space was added between the single quotes. I use this method often when using messagebox string definition to easily read what the user will see in side the messagebox, but either answer works. I'm not entirely sure which would necessarily be more correct or efficient.

카테고리

도움말 센터File Exchange에서 Characters and Strings에 대해 자세히 알아보기

질문:

Joe
2013년 3월 17일

답변:

2018년 8월 29일

Community Treasure Hunt

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

Start Hunting!

Translated by