Matrix splitting to overcome "array exceeds maximum array size"?

1 view (last 30 days)
I currently have:
N=[x1,y1,z1;x2,y2,z2;...;xn,yn,zn];
K=[kx1,ky1,kz1;kx2,ky2,kz2;...;kxn,kyn,kzn];
S=N*K';
S=[K(:,1),K(:,2),S'];
However due to the size of N and K being 78596x3 and 361201x3 respectively the error message "array exceeds maximum array size" appears when calculating S.
Therefore I want to create a loop to calculate S for sections of K to prevent this. What is the best way to do this.

Accepted Answer

Guillaume
Guillaume on 10 Jul 2015
Edited: Guillaume on 10 Jul 2015
Something like this:
subklength = 100; %whatever you want
transK = K';
for kstart = 1 : subklength : size(k, 1)
S = N * transK(:, kstart : min(end, kstart+subklength-1))'; %S for section of K
%do something with S
end

More Answers (0)

Community Treasure Hunt

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

Start Hunting!