Variable for loop storage

1 view (last 30 days)
Cside
Cside on 3 Aug 2020
Answered: madhan ravi on 3 Aug 2020
Hi, I currently have this code which allows the for loop to run based off an array, but I cannot run the same for loop to create a new matrix (the size of the matrix should be the number of loops run). Is there a way I can code for this better? Thank you!
lowPs = 50 x 1 array [101,105,107....], variable pattern
A is a 170 x 50 matrix
for k = lowPs(1:end)
B = find(A(:,1) == k)); %%row numbers in A where A(:,1) that contain the integer in lowPs
low = A(B,:); %% extract these rows from A and build it into a new matrix low, low should be 50 x50
end

Accepted Answer

madhan ravi
madhan ravi on 3 Aug 2020
low = cell(numel(lowPs), 1);
for k = 1 : numel(lowPs)
B = A(:,1) == lowPs(k); %%row numbers in A where A(:,1) that contain the integer in lowPs
low{k} = A(B, :); %%extract these rows from A and build it into a new matrix low, low should be 50 x50
end
low = cat(1, low{:});

More Answers (1)

madhan ravi
madhan ravi on 3 Aug 2020
low = A(lowPs, :)

Community Treasure Hunt

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

Start Hunting!