Avoid using repmat in CPD registration algorithm
1 次查看(过去 30 天)
显示 更早的评论
Hi all,
I'm running a coherent point drift (CPD) registration algorithm and I'm having trouble running it on large point clouds because I keep exceeding the maximum variable size. The line of code that is giving me trouble is:
G=repmat(x,[1 1 m])-permute(repmat(y,[1 1 n]),[3 2 1]);
The error message is:
??? Maximum variable size allowed by the program is exceeded.
Error in ==> repmat at 104
B = A(subs{:});
I'm wondering if anyone has any suggestions as how to avoid using repmat so I can run the code on large data sets.
Thanks!
2 个评论
采纳的回答
Sean de Wolski
2012-10-24
bsxfun should be able to handle that.
Also, rather than using permute use reshape, permute is slow for big things.
G = bsxfun(@minus,x,reshape(y',1,3,[]))
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!