Info

此问题已关闭。 请重新打开它进行编辑或回答。

is there fast way for this problem

1 次查看(过去 30 天)
huda nawaf
huda nawaf 2012-1-9
关闭: MATLAB Answer Bot 2021-8-20
hi, is there a fast way to deal with this problem:
I have 17770 files, each file has structure as:
id_user(integer), rate(integer),date
each file has unique id_user but may share these id_users with other files.
what I want is: each unique id _user be row in array such as: id_user1: rate1 date1 rate3 date3......raten daten id_user2: rate3 date3..rate20 date20........... etc..
I mean rate1 for ex. is rate of user1 in file 1 and rate3 in file 3 and so on. where id_user1 for ex. be in file 1 and file 3 id_user2 be in file 3 and file 20
I wrote code , it is work correctly, but very very slow, it need three hours to creat array with just 50 id_users(read all 17770). I have 480000 id's of users,I have to look for their ratings in 17770 files. I placed my files in folder, then read it one after one. I looked for unique id of users ,then use function (find)in all 17770. Each time looked for id of 30 users as ex. n all files ,then record their ratings in array , but this process take long time, where to accumulate data for 30 users take three hours .
any suggestions, advices may help me
thanks in advance

回答(1 个)

Robert Cumming
Robert Cumming 2012-1-9
are you preallocating? use the profiler to help locate the time where the code takes longest
profile on
% run your code
profile viewer
Run on a subset of your files for testing - then expand to include more files.
  9 个评论
huda nawaf
huda nawaf 2012-1-11
i can not konow the no. of columns because the code itself will accumulate the the information from all files ,
see
u1 id-mv1 id-mv2.......unknown how many id-mvs
u2 id-mv1 id-mv2 id-mv3............
the id's for each users unknown, also i can not guesses largest no. of id-mv.
regarding dtstr2dtnummx, i got if from the link:
http://www.mathworks.com/matlabcentral/fileexchange/28093-datestr2num, and added it manually.
thanks
Robert Cumming
Robert Cumming 2012-1-11
either preallocate tobigger than you need and check that it does not grow - or do a preloop to determine size. it will speed things up.

此问题已关闭。

标签

Community Treasure Hunt

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

Start Hunting!

Translated by