Borrar filtros
Borrar filtros

writing each line of a text file in a cell array

5 visualizaciones (últimos 30 días)
Shima Asaadi
Shima Asaadi el 23 de Mzo. de 2016
Editada: Kirby Fears el 23 de Mzo. de 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 comentario
dpb
dpb el 23 de Mzo. de 2016
I'm not following what you want as the end result. I small sample file and the desired output would help...

Iniciar sesión para comentar.

Respuesta aceptada

Kirby Fears
Kirby Fears el 23 de Mzo. de 2016
Editada: Kirby Fears el 23 de Mzo. de 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.

Más respuestas (0)

Categorías

Más información sobre Data Import and Export en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by