STRCAT SYNTAX TO BE USED?
1 view (last 30 days)
Show older comments
IF I WANT TO STRCAT 2 VALUES I WOULD DO STRCAT(S1,S2), SO WHAT IF I WANT TO DO N VALUES AND 'N' IS A VALUE WHICH GETS DEFINED IN BETWEEN THE PROGRAM?? WHAT IS THE SYNTAX I SHOULD USE?
THANK YOU
1 Comment
Jan
on 7 May 2016
Please note that writing in uppercase means shouting in the forum. So please calm down and type your question as all otehr do with a proper case. Thanks.
Accepted Answer
More Answers (1)
Jan
on 7 May 2016
Edited: Jan
on 7 May 2016
If you store a dynamical number of string, you do not use the names S1, S2, S..., but you store them in a cell string:
C = {'String 1', 'String 2', 'String 3'}; % and so on
Then instead of writing:
S = strcat(C{1}, C{2}, C{3})
You can write:
S = strcat(C{:});
This works with 200 million strings also, where names like S200000000 would be too ugly.
2 Comments
Jan
on 7 May 2016
Edited: Jan
on 7 May 2016
@Chetan: You have selected Azzi's answer as a solution, but it performs something completely different. Accepting an answer means, that it solves your problem.
You cannot assign a vector with many elements to a scalar variable b. Storing strings in a CHAR-matrix has severe disadvantages, e.g. you cannot distinguish the padded spaces with trailing spaces, which belong to the strings. A conversion to a cell string removes the padded spaces:
S = char('hi', 'matlab', 'user');
C = cellstr(S);
B = strcat(C{:})
If you want to keep the spaces you do not need strcat:
B = reshape(S.', 1, [])
See Also
Categories
Find more on Characters and Strings in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!