Build array from descriptive data without a loop
Show older comments
I want to go from
Array1 = [10,3,3;1000,178,4];
to
Array2 = [10;13;16;1000;1178;1356;1534];
without using
Idx2 = 1;
Array2 = zeros(sum(Array1(:,3)),1);
for Idx1 = 1:size(Array1,1)
Array2(Idx2:Idx2+Array1(Idx1,3)-1) = [Array1(Idx1,1),Array1(Idx1,1)+[1:Array1(Idx1,3)-1].*Array1(Idx1,2)];
Idx2 = Idx2+Array1(Idx1,3)-1;
end
Help?
Accepted Answer
More Answers (1)
Array1 = [10,3,3;1000,178,4];
Array2 = cumsum(Array1,2)
2 Comments
Walter Roberson
on 17 Feb 2023
Tthe third column is the number of elements to generate, with the difference being the second column, and the starting point being the first column.
Kevin Holly
on 17 Feb 2023
ah, thanks for pointing that out.
Categories
Find more on Image Arithmetic 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!