MATLAB Answers

How do I add space between strings when I am using randperm?

조회 수: 10(최근 30일)
Elisa
Elisa 2013년 10월 2일
댓글: Sean de Wolski 2013년 10월 4일
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
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
Elisa
Elisa 2013년 10월 3일
thanks a lot Walter. Now, I've solved it!
I needed to define that your code is in fact my variable:
string = 'BCDFGHJKLMNPQRSTVWXYZ';
numRands = length(string);
set_length = 5;
set_string = string( randperm(21,set_length)); %21 consonants
set_string = reshape([set_string; blanks(set_length)], 1, []);
set(handles.show_set_string_inStaticTextInGUI,'String',set_string);
Thanks a lot!!!!!!

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

추가 답변(1개)

Sean de Wolski
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)).').',' ');
  댓글 수: 2
Sean de Wolski
Sean de Wolski 2013년 10월 4일
strjoin is new in 13a I believe.

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

Community Treasure Hunt

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

Start Hunting!

Translated by