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 Kommentare

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

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

per isakson
per isakson am 25 Jul. 2012
Bearbeitet: Ned Gulley am 26 Jul. 2012

2 Stimmen

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 Kommentar

Jan
Jan am 25 Jul. 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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by