Cell array summation
显示 更早的评论
Hi. I'am working on SVD++ algorithm for my course project and I've recently faced a huge bottleneck it the code which I am unable to solve by myself.
the code which consumes approximately 70% of time is:
for item=1:length(UserDataClear2)
Ys=Ys+ItemInfo{UserDataClear2{user}(item),4};
end
It does the following:
for each user there is a vector of items he rated (just numbers). It finds corresponding vector ItemInfo(x,4) where x stand for item's number (which i get from user profile, so set of items changes for each user).
I need to find a sum of all these vectors (ItemInfo(x,4)) - which seems to be the hardest part, as these vectors are stored in cell array.
Other variants such as
for item=1:length(UserDataClear2)
Ys{item}=ItemInfo{UserDataClear2{user}(item),4};
end
YsSum=sum(cat(2,Ys{:}),2)
work much slower.
In other words: I need to sum vectors from cell arrays, whereas vectors these vectors are different for each user; all of them are stored in huge cell array.
Any ideas how this code can be imporved?
Sincerely, Alex.
采纳的回答
更多回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!