Reading a select number of characters from a string

1.234 Ansichten (letzte 30 Tage)
Louis
Louis am 25 Dez. 2011
Kommentiert: Kiana Maillet am 15 Aug. 2022
How would I go about taking the first 5 characters of a string? I want to be able to take a string like "some_string" and take the first 5 characters so I get a new string "some_". I am not sure where to look in MatLab documentation for this.
  4 Kommentare
Shikhar Pandey
Shikhar Pandey am 13 Jul. 2016
for me this is not working. I am implementing it in a callback function in GUI.
Johann Alban Schöpfer
Johann Alban Schöpfer am 26 Jan. 2018
If you are reading this in the glorious time of the string data type, you can use the answers below by going back to a char array.
str = "I want to edit this string";
temp = char(str);
% do the things
str = string(temp);

Melden Sie sich an, um zu kommentieren.

Antworten (5)

Junaid
Junaid am 25 Dez. 2011
Dear Louis,
Let say you have string Variable a;
a = 'HelloMoto';
if you want to take first 5 character of this. It is straight forward.
b = a(1:5); % now b has a's first characters only.
Similarly if you have array of String like this;
A = {'String1', 'String2','String3' };
Then taking string2 as your "Some_String" and then take first 5 character would be like this.
B = A{2};
B(1:5)
I hope this is what you asked for ? Do let me know in either case.
  4 Kommentare
Louis
Louis am 25 Dez. 2011
Message is just read in from an Excel file. It is only a string I am reading in. I tried your suggestion, but that didn't work. Might one issue be that the first 3 characters for some of the actual message in the spreadsheet are spaces?
Kiana Maillet
Kiana Maillet am 15 Aug. 2022
Isn't 'that' a character array? and "this" would be a string..

Melden Sie sich an, um zu kommentieren.


Jurgen
Jurgen am 16 Dez. 2019
If you don't want to convert to char type: extractBetween and it's brethren work on the newer string datatype.

Junaid
Junaid am 25 Dez. 2011
Dear Let say your file name is "someFile.xls" then following code should work.
[m mess] = xlsread('someFile.xls', 1);
The size of mess with be number columns and rows in sheet one. Lets assume that in first row second colum there is your requires string you want to take first three initial characters. Then this code should work.
a = char(mess(1,2)); % now a contains that string
myStr = a(1:3); % this should return your first three characters.
Try and let us know, if it works. For experiments you make your own xls file so that you put the string you want. Once the code works and give desired resutls then it would be easy for you to debug your problem in your current xls file, as you mentioned due to spaces or anything.
  3 Kommentare
Jan
Jan am 25 Dez. 2011
"mess{1,2}" is more efficient than "char(mess(1,2))".
Jan
Jan am 25 Dez. 2011
@Louis: The white space characters do not cause troubles, because they are characters. But if the strings have less than 3 characters, "a(1:3)" will fail.

Melden Sie sich an, um zu kommentieren.


Jan
Jan am 25 Dez. 2011
This crops the first 3 characters, but dos not touch shorter strings:
[~,message] = xlsread('someFile.xlsx', 1, entryF);
a = message(1:min(3, length(a)));
  3 Kommentare
Calum
Calum am 4 Nov. 2014
Bearbeitet: Calum am 4 Nov. 2014
How would I keep only the first three characters from every row in a column of unknown length?
Thanks
ABDALHADI ABU ZEYNEH
ABDALHADI ABU ZEYNEH am 19 Mai 2020
word= char('cacabcabac');
word(1:3)

Melden Sie sich an, um zu kommentieren.


Vahidreza Jahanmard
Vahidreza Jahanmard am 25 Mär. 2022
If you have string format (not char format), you can use this function:
https://mathworks.com/help/matlab/ref/extract.html

Kategorien

Mehr zu Characters and Strings finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by