how read such txtfile

hi,
how I can read such txtfile
1::1193::5::978300760
1::661::3::978302109
1::914::3::978301968
1::3408::4::978300275
1::2355::5::978824291
1::1197::3::978302268
1::1287::5::978302039
when I used textscan, I'm not get the data thanks

10 comentarios

Walter Roberson
Walter Roberson el 25 de Jul. de 2012
Please show your textscan attempt.
Matt Kindig
Matt Kindig el 25 de Jul. de 2012
What is the proper form of the data? From the one you've shown, I assume that each line should be a separate row of four integers-- is this correct? Do the colons have a particular meaning aside from separating columns? Are you ignoring any of the columns?
huda nawaf
huda nawaf el 25 de Jul. de 2012
this is the code
f = fopen('d:\matlab\r2011a\bin\movielens\ratings_1m.dat'); c = textscan(f, '%d %d %d %d'); c1=c{1}
and this is the result:
c =
[1] [0x1 double] [0x1 double] [0x1 double]
c1 =
1
thanks
huda nawaf
huda nawaf el 25 de Jul. de 2012
hi Matt yes my data as
1::1193::5::978300760
1::661::3::978302109
1::914::3::978301968
Jan
Jan el 25 de Jul. de 2012
What do you want as output? You forgot to explain this very important detail.
huda nawaf
huda nawaf el 25 de Jul. de 2012
jan what I need is each column alon for example: c1=c{1},c2=c{2} and so on
Jan
Jan el 25 de Jul. de 2012
And what how many columns do you want? Is "::" the separator and you want 4 columns of data, or is ":" the separator and you get 7 columns, while the 2nd, 4th and 6th get invalid values - if so, which invalid values?
per isakson
per isakson el 25 de Jul. de 2012
Editada: per isakson el 25 de Jul. de 2012
hi huda, Why do you include space in your format-string, "'%d %d %d %d'"? There are no spaces in the text-file.
Oleg Komarov
Oleg Komarov el 25 de Jul. de 2012
119 questions asked so far but the style hasn't changed by a comma from the initial requests. I'm still wandering why bother at all...

Iniciar sesión para comentar.

 Respuesta aceptada

per isakson
per isakson el 25 de Jul. de 2012
Editada: Ned Gulley el 26 de Jul. de 2012

2 votos

How I can read a text file, which looks like this in an editor
1::1193::5::978300760
1::661::3::978302109
1::914::3::978301968
1::3408::4::978300275
1::2355::5::978824291
1::1197::3::978302268
1::1287::5::978302039
I want a [7x7] double array
I have tried with the following command
cac = textscan( fid, '%d%d%d%d%d%d%d', 'Delimiter', ':' );
when I used this command, I'm not get the data thanks
I guess this is a more effective way to present the question - per
.
--- Problem solved ---
Thanks Jan, your hint guided me to a solution.
I changed my mind. Now, I want a [7x4 int32] and hope that ":" always comes in pairs.
>> txt2m()
ans =
[7x4 int32]
>> cac{:}
ans =
1 1193 5 978300760
1 661 3 978302109
1 914 3 978301968
1 3408 4 978300275
1 2355 5 978824291
1 1197 3 978302268
1 1287 5 978302039
where the function, txt2m, is given by
function cac = txt2m()
fid = fopen('cssm.txt');
cac = textscan( fid, '%d%d%d%d' ...
, 'Delimiter' , ':' ...
, 'CollectOutput' , true ...
... , 'EmptyValue' , -999 ...
, 'ExpChars' , '' ...
, 'MultipleDelimsAsOne' , true ...
, 'Whitespace' , '' );
fclose( fid )
end

1 comentario

Jan
Jan el 25 de Jul. de 2012
Exactly, per. And if a [7x7] numerical array is wanted, what should appear for the missing columns: NaN, Inf, 0? Or perhaps huda wants a [7 x 4] array. Or a {1 x 7} cell containing [7x1] vectors.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Characters and Strings en Centro de ayuda y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by