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 Commenti

Walter Roberson
Walter Roberson il 25 Lug 2012
Please show your textscan attempt.
Matt Kindig
Matt Kindig il 25 Lug 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?
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
hi Matt yes my data as
1::1193::5::978300760
1::661::3::978302109
1::914::3::978301968
Jan
Jan il 25 Lug 2012
What do you want as output? You forgot to explain this very important detail.
huda nawaf
huda nawaf il 25 Lug 2012
jan what I need is each column alon for example: c1=c{1},c2=c{2} and so on
Jan
Jan il 25 Lug 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 il 25 Lug 2012
Modificato: per isakson il 25 Lug 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 il 25 Lug 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...

Accedi per commentare.

 Risposta accettata

per isakson
per isakson il 25 Lug 2012
Modificato: Ned Gulley il 26 Lug 2012
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 Commento

Jan
Jan il 25 Lug 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.

Accedi per commentare.

Più risposte (0)

Categorie

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by