I was trying to make a sub string and searched and found this.
However this seem to require Stateflow, which I don't have...
Trying to make my own way(implementation?) using
string = "This should really be in the MatLab core!";
%convert to character array
b = convertStringsToChars(string);
ba = length(b);
%get index of "in the"
k = strfind(b,"in the");
stringbuilder = "";
%start the loop from k
for cIx = k:ba
%sprintf because spaces will be ignored otherwise
stringbuilder = strcat(stringbuilder,sprintf("%s",b(cIx)));
end
disp(stringbuilder);
Result:
in the MatLab core!
---
Is there another way?

 채택된 답변

Ameer Hamza
Ameer Hamza 2020년 5월 9일
편집: Ameer Hamza 2020년 5월 9일

1 개 추천

char arrays support indexing. Also, string is the name of MATLAB built-in function, so I named the name of the variable to 'str'
str = "This should really be in the MatLab core!";
%convert to character array
b = char(str); % you can simply use char()
ba = length(b);
%get index of "in the"
k = strfind(b,"in the");
stringbuilder = b(k:end);
stringbuilder = string(stringbuilder); % convert back to string
Result
>> stringbuilder
stringbuilder =
"in the MatLab core!"

댓글 수: 3

Erik Taurus
Erik Taurus 2020년 5월 10일
Excellent, neat and tidy, thank you!
Ameer Hamza
Ameer Hamza 2020년 5월 10일
I am glad to be of help.
If anyone else read this I found out that MatLab does have this built in, but in three different core functions
extractbetween example:
str = "Perhaps I should read the documentation before posting questions!";
startStr = strfind(str,"I ");
endStr = strfind(str,"before")-1;
newStr = extractBetween(str,startStr,endStr);
fprintf("%s\r",newStr);

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Simulink에 대해 자세히 알아보기

태그

질문:

2020년 5월 9일

댓글:

2020년 5월 12일

Community Treasure Hunt

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

Start Hunting!

Translated by