How to get split to return a string array?

8 visualizaciones (últimos 30 días)
Katrina
Katrina el 9 de Dic. de 2020
Comentada: Katrina el 10 de Dic. de 2020
Hello,
I am trying to read a text file and split each line into space-delineated components. Using split I always get a cell array as output, and then have to use cell2mat to convert each cell to a string. According to matlab documentation, if the input field is a string array, the output will be a string array, but that is not how it is working for me. What am I doing wrong?
str = fgetl(filepointer);
substrings = split(str);
Isn't substrings a string array? If I say ischar(substring), the answer is 1. I have also tried fgets but the result is the same.
It is just clunky to have to call cell2mat before processing every chunk of the string.
thank you.

Respuesta aceptada

Walter Roberson
Walter Roberson el 10 de Dic. de 2020
The low level file operations never return string objects.
tline = fgetl(fileID) returns the next line of the specified file, removing the newline characters.
  • If the file is nonempty, then fgetl returns tline as a character vector.
  • If the file is empty and contains only the end-of-file marker, then fgetl returns tline as a numeric value -1.
then have to use cell2mat to convert each cell to a string
No, that is not necessary.
You can proceed one of two ways:
substrings = string(split(str));
or
substrings = split(string(str));
I personally prefer the first of those two, but I can understand that some people might prefer the second of them.

Más respuestas (0)

Categorías

Más información sobre Characters and Strings en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by