writing each line of a text file in a cell array

5 vues (au cours des 30 derniers jours)
Shima Asaadi
Shima Asaadi le 23 Mar 2016
Modifié(e) : Kirby Fears le 23 Mar 2016
I try to write a text file in a cell array in MATLAB, each line consists of a number of strings,in to a cell array, and at last the whole file in a cell. the following code works well, but I am looking for a shorter and efficient way of implementing the code: (because I have many documents to apply to this code)
fileToRead = 'myfile.txt';
fid = fopen(fileToRead,'rt');
tmp = textscan(fid, '%s', 'Delimiter', '\n');
fclose(fid);
C=cell(1,1);
size(tmp{1,1})
k=1;
for i=1:size(tmp{1,1})
temp = strsplit(tmp{1,1}{i,1})
C{k,1}=temp;
k=k+1;
end
Does anyone know a better way?
Thanks
  1 commentaire
dpb
dpb le 23 Mar 2016
I'm not following what you want as the end result. I small sample file and the desired output would help...

Connectez-vous pour commenter.

Réponse acceptée

Kirby Fears
Kirby Fears le 23 Mar 2016
Modifié(e) : Kirby Fears le 23 Mar 2016
Hi Shima,
From context clues, I'm guessing "myfile.txt" is a space-delimited table of data. Your approach is useful if you don't know exactly how many columns are in the file.
I made a utility function called delimread which you might find very helpful. You can download delimread and include it in your matlab path in order to call it.
The below example will read a space-delimited text file into a correctly sized cell array without specifying the number of columns in the file:
% Read file as raw text
fileToRead = 'myfile.txt';
result = delimread(fileToRead,' ','raw');
% display result
disp(result.raw);
If this doesn't work for you, please post a small sample of your text file so I can give a more accurate response.
Hope this helps.

Plus de réponses (0)

Catégories

En savoir plus sur Data Import and Export dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by