Selecting Every Other Element in a Matrix

How can I select every other element in a matrix, such as A=[1 2 8 7 6 5 4 6]?

 采纳的回答

I’m not certain what you want, so I’ll venture two possibilities:
A=[1 2 8 7 6 5 4 6];
Aodd = A(1:2:end); % Odd-Indexed Elements
Aeven = A(2:2:end); % Even-Indexed Elements

7 个评论

i want to do the same for a 2-D array, how can i achieve that?
A=[1 2 8; 7 6 5; 4 6 9];
A= A(:);
Aodd = A(1:2:end); % Odd-Indexed Elements
Aeven = A(2:2:end); % Even-Indexed Elements
at the end use reshpae to make it 2D again
"i want to do the same for a 2-D array, how can i achieve that?"
A(1:2:end,:) % odd rows
A(2:2:end,:) % even rows
A(:,1:2:end) % odd columns
A(:,2:2:end) % even columns
Very basic concepts, such as how to use indexing, are explained in the introductory tutorials:
How do you do this if it is a complex vector?
It should work the same way for complex vectors, however the problem with that is that it could select only one of a complex pair. One way to correct for that would be to use the conj function to complete the pair after selecting them, then use the cplxpair function.
You would need to decide whether you wanted to select from complex vectors to begin with. The problems that could cause might not be worth the efffort.

请先登录,再进行评论。

更多回答(1 个)

function y = everyOther(x)
y = x(1:2:length(x));
end

类别

帮助中心File Exchange 中查找有关 Dates and Time 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by