Append to vector of different sizes in for loop
9 views (last 30 days)
Show older comments
Hi.
How does one append a vector to a another vector within a loop.
I have the code below: Point is i want the signal between the first and second indices of ipts. then the third and fourth et cetera up to the nineteenth to twentieth.
with this code I only get the last part nineteenth to twentieth.
i = 1;
while i < 19;
A = TimeSeries_short(ipts(i):ipts(i+1));
i = i+2;
end
.mat file is attached.
0 Comments
Accepted Answer
Stephen23
on 15 Feb 2021
Simpler:
S = load('test_file.mat')
fun = @(b,e)S.TimeSeries_short(b:e);
out = arrayfun(fun,S.ipts(1:2:end),S.ipts(2:2:end),'uni',0)
More Answers (1)
dpb
on 14 Feb 2021
The short answer is
i = 1;
A=[];
for i=1:2:numel(ipts)
A = [A;TimeSeries_short(ipts(i):ipts(i+1),:);
end
Normally one frowns on dynamic reallocation, but presuming the overall array is going to be relatively small, the time taken won't be excessive.
If A is going to be very large, then one will want to calculate the final size and compute the indices going in and explicitly set the rows.
6 Comments
See Also
Categories
Find more on Loops and Conditional Statements 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!