Create a row vectors that includes even/odds between 0 and X

1 次查看(过去 30 天)
How can I created a row vector that includes every even/odd number BETWEEN two variables but does not include them. ie x=10 y=20 vector=[12 14 16 18]

采纳的回答

Azzi Abdelmalek
Azzi Abdelmalek 2013-2-15
x=10;
y=20;
v=x+1:y-1
v_even=v(mod(v,2)==0)
v_odd=v(mod(v,2)~=0)

更多回答(2 个)

Image Analyst
Image Analyst 2013-2-15
out = (x+1) : 2 : (y-1)
or
out = (x+2) : 2 : (y-1)

John BG
John BG 2015-10-12
Also possible: find(mod(X,2)==0) and find(mod(X,2)~=0)
  2 个评论
Image Analyst
Image Analyst 2015-10-12
Not as-is -- you'd need to add code:
X = 10:20
oddNumbers = find(mod(X,2)==0)
gives
X =
10 11 12 13 14 15 16 17 18 19 20
oddNumbers =
1 3 5 7 9 11
which is not [11,13,15,17,19], but if you added all but the last element to the first element of the original X, it would work.
John BG
John BG 2016-2-13
Should have added the X(),
find(mod(X,2)~=0)
does give the positions of the odd elements of X
ans = 11.00 13.00 15.00 17.00 19.00
and
find(mod(X,2)==0)
gives the even elements of X
ans = 10.00 12.00 14.00 16.00 18.00 20.00
Alternatively
nonzeros(mod(X,2).*X)'
also gives the odd elements of X

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Structures 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by