Azzera filtri
Azzera filtri

textscan for string with white spaces

1 visualizzazione (ultimi 30 giorni)
Eric
Eric il 12 Lug 2013
I use textscan to read in data from a file with the format as follows:
1790 2700 red blue white
2783 3185
4835 4849
4854 4865 blue white
fid = fopen(filename);
data = textscan(fid, '%d%d%s');
fclose(fid);
And would like my variable data consists of 3 cells, the first two cells that are integers and the last cell contains empty string or string with white spaces. I failed to produce the output after many attempts. Is there a better way to do that? Thanks.

Risposte (1)

David Sanchez
David Sanchez il 12 Lug 2013
Try horzcat to concatenate strings with empty spaces. Example 1:
str_1 = 'test';
str_2 = ' '; % empty space
str_3 = 'something';
new_str = horzcat(str_1,str_2,str_3)
Example 2:
str_1 = 'test';
str_2 = ' something'; % empty space at the beginning
new_str = horzcat(str_1,str_2)
  1 Commento
Eric
Eric il 12 Lug 2013
Thanks for your prompt reply, David. Maybe I din't make it clear. I wanted to read from a file and produce 3 output cells. The problem is textscan's '%s' will stop when it comes to a white space. Unless I use multiple '%s', '%s%s%s' for that purpose. However I could not guarantee there are at most 3 words, it could be more. Maybe there is a more elegant way of doing that.

Accedi per commentare.

Categorie

Scopri di più su Large Files and Big Data in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by