Why array of strings are concatenated?

1 view (last 30 days)
Zeynab Mousavikhamene on 4 Nov 2019
Commented: Star Strider on 4 Nov 2019
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.

Stephen Cobeldick on 4 Nov 2019
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 on 4 Nov 2019
Note that string arrays were introduced in R2016b. Prior to that, strings and character arrays were considered to be the same thing.

Star Strider on 4 Nov 2019
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

ME on 4 Nov 2019
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 on 4 Nov 2019
@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.