How to get split to return a string array?

조회 수: 12 (최근 30일)
Katrina
Katrina 2020년 12월 9일
댓글: Katrina 2020년 12월 10일
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.

채택된 답변

Walter Roberson
Walter Roberson 2020년 12월 10일
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.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Characters and Strings에 대해 자세히 알아보기

태그

제품


릴리스

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by