How do I add space between strings when I am using randperm?
2 次查看(过去 30 天)
显示 更早的评论
Sorry, I'm not expert but I'm learning.
I've tried some answer regarding how to add space between strings, but it seems that these methods do not apply when using a random generation of string.
If I use matrix concatenation (horzcat): ['A', ' ', 'B'] it will generate the space randomly.
if I use STRCAT then it give me error 'index exceed size of matrix' whatever I do.
This is my code:
string = ['BCDFGHKJLMNPQRSTVWXYZ'];
numRands = length(string);
set_length = 5;
set_string = string( round(randperm(21,set_length))); %21 consonants
Thanks a lot in advance for any help you might provide!
2 个评论
Walter Roberson
2013-10-2
randperm(21, set_length) is going to produce a list of integers. There is no point in round()'ing the integers before using them as indices.
采纳的回答
Walter Roberson
2013-10-2
There is a trick to using strcat() to add a space: strcat() will disregard leading or trailing spaces on strings, but will not do so for a cell array of strings. So you can use
set_string1 = string( round(randperm(21,set_length)));
set_string2 = string( round(randperm(21,set_length)));
strcat(set_string1, {' '}, set_string2)
Or, considering that set_string1 and set_string2 are just simple vector of character,
[set_string1, ' ', set_string2]
5 个评论
更多回答(1 个)
Sean de Wolski
2013-10-3
You could also do this with strjoin (13a or newer)
string = ['BCDFGHKJLMNPQRSTVWXYZ'];
numRands = length(string);
set_length = 5;
set_string = strjoin(cellstr(string(randperm(21,set_length)).').',' ');
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Characters and Strings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!