Alternatives to substr without Stateflow?

9 views (last 30 days)
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?

Accepted Answer

Ameer Hamza
Ameer Hamza on 9 May 2020
Edited: Ameer Hamza on 9 May 2020
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 Comments
Erik Taurus
Erik Taurus on 12 May 2020
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);

Sign in to comment.

More Answers (0)

Categories

Find more on Cell Arrays 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!