how can i save the even index to a matrix 2:5 using for loop
1 view (last 30 days)
Show older comments
i print the even position in matrix z but the qausition is to save the output of the loop which is even index into a other matrix 2:5 using for loop . this is the code to produce an even endex
clear all
clc
z=randi([1 10],5,10)
for i=1:5
if(mod(i,2)==0)
for j=1:10
if(mod(j,2)==0)
fprintf('even index:%d\n',z(i,j))
end
end
end
end
0 Comments
Answers (2)
Sargondjani
on 6 Nov 2021
Edited: Sargondjani
on 6 Nov 2021
I think you want something like this:
(which you could speed up by pre-allocating MAT=NaN(2,5))
cnt_rows = 0;
cnt_cols = 0;
for i=1:5
if(mod(i,2)==0)
cnt_rows = cnt_rows+1;
for j=1:10
if(mod(j,2)==0)
cnt_cols = cnt_cols+1;
MAT(cnt_rows,cnt_cols) = z(i,j);
end
end
end
end
0 Comments
Chris
on 6 Nov 2021
Edited: Chris
on 6 Nov 2021
z=randi([1 10],5,10)
newmatrix = [];
for i=1:5
if(mod(i,2)==0)
for j=1:10
if(mod(j,2)==0)
% fprintf('even index:%d\n',z(i,j))
newmatrix(end+1) = z(i,j);
end
end
end
end
newmatrix = reshape(newmatrix,5,2)'
Alternatively, move down the columns in the inner loop. Then a 2x5 matrix would fill up naturally, retaining the orientation of the larger matrix.
z=randi([1 10],5,10)
newmatrix = zeros(2,5);
idx = 1;
for j=1:10
if(mod(j,2)==0)
for i=1:5
if(mod(i,2)==0)
% fprintf('even index:%d\n',z(i,j))
newmatrix(idx) = z(i,j);
idx = idx+1;
end
end
end
end
newmatrix
0 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!