查看单个帖子
旧 2019-11-26, 17:02   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
默认 Is there any benefit to vectorization of following code in matlab?

for i=1:numResults
tempStructure=struct;
for j=1:options.numDates
stringJ=num2str(j);
[tempStructure.(['temp' stringJ]),tempStructure.(['tempHHI' stringJ])]=fillTemp(resultsStructure.(['results' stringJ]),resultsStructure.(['resultsHHI' stringJ]),options.resultSize,i);
end
end


Here, we can assume that resultStructure has fields (specified dynamically) before the loop and every field is present in resultStructure.



fillTemp is a complex function that is very difficult to vectorize.



Is there any benefit in removing "for" loops for i and j by way of bsxfun in the code above to improve performance? Any alternative method for speeding up the above code is also appreciated.



Note: I understand the way I am defining and using structures with dynamic fields is not the most optimal solution but this is a working solution and I do not want to tinker with the working solution.
I am using Matlab 2018a.





More answer...
poster 当前离线   回复时引用此帖