Hello,
I am writing up an interpolation function and need to define the vertices of the hypercube surrounding the current values.
My current code to do this is:
% (3) Calculate the A values that are the vertices of the N-D hypercube.
a = zeros(1,2^size(CURRENT,1)-1);curridx = zeros(1,size(CURRENT,1));idx = zeros(1,size(CURRENT,1));for cnt = 1:(2^size(CURRENT,1)) change = find((mod(cnt-1,2.^(0:size(CURRENT,1)-1))==0)==1); curridx(change) = 1*curridx(change)==0; for cnt1 = 1:size(CURRENT,1) idx(cnt1) = lidx(cnt1)*(curridx(cnt1)==0)+uidx(cnt1)*(curridx(cnt1)==1); end Subs = num2cell(idx); a(cnt) = DATA(Subs{:}); end
With the profiler showing that the lines
Subs = num2cell(idx); a(cnt) = DATA(Subs{:});
Are 32.1% and 23.8% of the total run-time respectively. Does anybody know a more efficient method?
Thank you!
Best Answer