Preallocation for a cell help needed
Show older comments
Hello,
I could not find out how to properly do the preallocation for the following situation. Could you please give me a hand?
Regards
Size of tracks' changes every loop, so I want to do preallocation for it but could not figure out how. (Size of tracks(1,i).nPoints remains same. Only tracks(1,i).matrix changes, 1≤i≤max_n_trks)
%% Interpolation
interp=1;
for param=1:interp
for k=1:max_n_trks % maximum number of tracks
vector = tracks(1,k).matrix;
len = tracks(1,k).nPoints;
for i=len:-1:1
vector(2*i-1,:,:)=vector(i,:,:);
end
tracks(1,k).nPoints = (tracks(1,k).nPoints*2)-1;
len = tracks(1,k).nPoints;
for i=1:2:len-1
vector(i+1,:,:) = (vector(i,:,:) + vector(i+2,:,:))/2;
end
tracks(1,k).matrix = vector;
end
end
note: Now, I found a way:
B = struct('nPoints',repmat({zeros(1)},1,110470),'matrix2',repmat({zeros([n 3])},1,110470))
I can assign the maximum value that n can take, however I want to make it more efficient. How can I do it? For example tracks(1,1).matrix has 3 elements and tracks(1,133).matrix has 170 elements. I do not want to assign 170 to each, I want to separately do to assignment.
Accepted Answer
More Answers (0)
Categories
Find more on Interpolation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!