MATLAB Answers

Removing entries of vector indexed by odd integer.

129 views (last 30 days)
David
David on 25 Sep 2013
So, in a question we've been asked to define a vector "x" which begins at 1.5 and ends at -3.5 with 101 entries in between without the use of any loops. So, I used linspace(1.4, -3.5, 101) to do this. However the next part of the question requires you to create a matrix "y" which corresponds to "x" only with the entries indexed by an odd integer removed. How can you do this without using a loop? Is there a function for it? Thanks.

  0 Comments

Sign in to comment.

Accepted Answer

Leah
Leah on 25 Sep 2013
You just have to reference every other element of the vector you created.
x=linspace(1.4, -3.5, 101) ;
y=x(1:2:end);

  1 Comment

David
David on 25 Sep 2013
Will that not include elements 1 and 101 though, and they're odd indexes? Why wouldn't it be y = x(2:2:100);?

Sign in to comment.

More Answers (1)

Matt J
Matt J on 25 Sep 2013
Edited: Matt J on 25 Sep 2013
x=linspace(1.4, -3.5, 101) ;
y=x;
y(1:2:end)=[];
or
y=x(2:2:end);

  9 Comments

Show 6 older comments
Image Analyst
Image Analyst on 25 Sep 2013
It gets elements, 2,4,6,8,10,12,14,........98,100,102. It can't get 104 since there is no 104, and since it doesn't get odd numbers, it won't get 103 even though it is "end" because it is odd. Does that explain it better?
Matt J
Matt J on 25 Sep 2013
See also
>> 2:2:15
ans =
2 4 6 8 10 12 14

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!