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 件のコメント

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

サインインしてコメントする。

 採用された回答

per isakson
per isakson 2012 年 7 月 25 日
編集済み: Ned Gulley 2012 年 7 月 26 日

2 投票

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 件のコメント

Jan
Jan 2012 年 7 月 25 日
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.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeCharacters and Strings についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by