Why array of strings are concatenated?

조회 수: 19 (최근 30일)
Zeynab Mousavikhamene
Zeynab Mousavikhamene 2019년 11월 4일
댓글: Star Strider 2019년 11월 4일
parameters=['K13','K24','K_52','K63','K74','K80','K101','K114','K162','MI','Ce','Ge','Pe'];
When I use:
size(parameters)
I get this:
ans =
1 39
But I wanted to get 1*13. I realized it concatenate all the strings to each other:
>> parameters
parameters =
'K13K24K_52K63K74K80K101K114K162MICeGePe'
How can I define it so that they become separated.
  댓글 수: 2
Stephen23
Stephen23 2019년 11월 4일
편집: Stephen23 2019년 11월 4일
Those are not strings, they are character vectors. Note the difference:
  • "..." scalar string
  • '...' character vector
String arrays and character arrays have very different properties and behaviors!
Star Strider
Star Strider 2019년 11월 4일
Note that string arrays were introduced in R2016b. Prior to that, strings and character arrays were considered to be the same thing.

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

채택된 답변

Star Strider
Star Strider 2019년 11월 4일
The square brackets [] are a concatenation operator.
To keep the individual strings as strings, use a cell array:
parameters = {'K13','K24','K_52','K63','K74','K80','K101','K114','K162','MI','Ce','Ge','Pe'};
Note the curly brackets {} denoting a cell array.
See the documentation section on MATLAB Operators and Special Characters
  댓글 수: 2
ME
ME 2019년 11월 4일
This is the same suggestion I made five minutes before!
In fairness though you've actually explained the problem rather than just giving the solution as I did!
Star Strider
Star Strider 2019년 11월 4일
@ME — Frequently, more than one person is in the process of writing an Answer to a particular Question at the same time. For more detailed Answers that require documentation references, it takes longer. If my Answer essentially duplicates a posted Answer when I discover it, I delete mine. If I believe it adds something, I leave it up.
I almost always delete my Answers if they are not Accepted.

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

추가 답변 (1개)

ME
ME 2019년 11월 4일
You could just store this in a cell array instead - with one parameter inside each cell

카테고리

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