How to join character

I have a string, after preprocessing i get result as
str=Institution/College
Name;
When i split the string using
str1=regexp(str, '/', 'split')
i get result as [1x11 char] [1x11 char]
str2{2}
gives
College
Name
i need as College Name, i need in one line as College Name
Kindly help

回答 (3 件)

Image Analyst
Image Analyst 2016 年 3 月 27 日

1 投票

Well don't split it then. Or is the word Institution followed by a slash there and you just want to get rid of that?
str = 'Institution/College Name';
slashLocation = strfind(str, '/');
newStr = str(slashLocation+1:end) % Gives 'College Name'

6 件のコメント

Pat
Pat 2016 年 3 月 27 日
still i get same result,even i have bigger name
str = 'Department/Institution/College Name';
it doesnot get splitted into two lines,but the before one gets splitted ,why it gets splitted
Image Analyst
Image Analyst 2016 年 3 月 27 日
You don't get the same problem, with College in one cell and Name in another cell. I actually tried it before I posted. Nonetheless, you can use John D'Errico's allwords(), which I use all the time. http://www.mathworks.com/matlabcentral/fileexchange/27184-allwords
str = 'Department/Institution/College Name';
caWords = allwords(str, '/')
caWords =
'Department' 'Institution' 'College Name'
You supply some sentence or string and it splits it into separate cells according to what you say the delimiter is.
Pat
Pat 2016 年 3 月 27 日
after preprocessing i get
i have used find_system(bdroot,'LookUnderMasks','on','FollowLinks', 'on') i get result as
Institution/College
Name
why it gets splitted
Image Analyst
Image Analyst 2016 年 3 月 27 日
編集済み: Image Analyst 2016 年 3 月 27 日
I don't know what preprocessing you did to produce bdroot, and then I don't what find_system() does to bdroot. Why don't you simple use the code I gave you? It works, doesn't it, whereas your code doesn't.
Walter Roberson
Walter Roberson 2016 年 3 月 28 日
find_system does not split the subsystem names at blanks. It returns a cell array of strings, each with one name. The adjacent entries do not belong together.
It sounds to me as if you have a carriage return (or newline) in a subsystem name. Historically that was not permitted. If it is permitted now, then the carriage return (or newline) would be part of the name and so the name should not be merged onto one line.
Walter Roberson
Walter Roberson 2016 年 3 月 28 日
It appears that under some conditions, spaces and newlines are now permitted; http://www.mathworks.com/help/simulink/ug/accessing-signal-logging-data.html#budgyrh . However, they would still be part of the name. It would be valid to have a signal named 'College Name' (with a space) and a signal named ['College' char(10) 'Name'] (with a newline) in the same block, so putting them on the same line would be misrepresenting the name.

サインインしてコメントする。

KSSV
KSSV 2016 年 3 月 27 日

0 投票

Doc strcat

1 件のコメント

Pat
Pat 2016 年 3 月 27 日
sorry str2{2} gives
College
Name
i need as College Name,strcat doesn't provide result i tried using strcat ,but the result is one string in two lines,i need in one line

サインインしてコメントする。

Stephen23
Stephen23 2016 年 3 月 28 日
編集済み: Stephen23 2016 年 3 月 28 日

0 投票

>> old = sprintf('Institution/College\nName')
old = Institution/College
Name
>> new = regexp(regexprep(old,'\s+',' '),'/','split');
>> new{:}
ans = Institution
ans = College Name

カテゴリ

ヘルプ センター および File ExchangeModeling についてさらに検索

タグ

質問済み:

Pat
2016 年 3 月 27 日

コメント済み:

2016 年 3 月 28 日

Community Treasure Hunt

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

Start Hunting!

Translated by