Calculate lsqr of two arrays on GPU

1 view (last 30 days)
Hello,
Is there way to calculate lsqr of two arrays, I mean for each columns of arrays respectively. If a (NxM) and b(NxM) are gpuArrays then:
c=lsqr(a(:,1),b(:,1));
This works with no problem. Is there a way to do it on whole arrays? I know that it could be done with for loops, but it becomes bottleneck in my code.

Accepted Answer

Joss Knight
Joss Knight on 21 Jul 2018
The least squares solution to a system of linear equations of one variable is pretty simple to work out, so you shouldn't really need any fancy linear algebra. I haven't actually checked this in MATLAB, but by my reckoning all you need is
c = sum(a .* b) ./ sum(a .* a);

More Answers (0)

Community Treasure Hunt

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

Start Hunting!