Problem 6. Select every other element of a vector

function x = everyOther(x)
n=length(x)
if mod(x,2)==1
i=1:2:n
expected=[x(i)]
else
i=1:2:n-1
expected=[x(i)]
end
end
This is the code I wrote
Why is this a mistake

Answers (1)

Matt J
Matt J on 27 Apr 2022
Edited: Matt J on 27 Apr 2022
It's wrong because you have assumed that IF statements on a vector distribute in some way across the elements of the vector. They don't. The implementation can be done in one line,
function x = everyOther(x)
x=x(1:2:end);
end

3 Comments

Or, depending on what index you want to start on:
function x = everyOther(x)
x = x(2 : 2 : end);
end
军 川 's reply relocated here:
thank you.it's nice
You are quite welcome, but please Accept-click the answer to indicate that it was what you needed.

Sign in to comment.

Categories

Find more on Programming in Help Center and File Exchange

Asked:

on 27 Apr 2022

Commented:

on 27 Apr 2022

Community Treasure Hunt

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

Start Hunting!