How do I find the even and odd elements in a vector?

I'm a student learning MATLAB and am just beginning. I have the following problem to answer:
Generate a vector of 20 random integers, each in the range from 50 to 100. Create a variable "evens" that stores all of the even numbers from the vector, and a variable "odds" that stores the odd numbers.
I created the vector of 20 random integers and named it myvec, but I have tried so many different expressions and cannot seem to find a way to find the even numbers and the odd numbers.
I've tried:
find(myvec==even)
find(myvec==odd)
find(myvec==[50:2:100])
find(myvec=[51:2:99])
None of these work, so can anyone please help?

2 comentarios

find(mod(myvec,2)==0)
Jan
Jan el 5 de Oct. de 2017
Usually you can omit the find() and use the faster linear indexing.

Iniciar sesión para comentar.

 Respuesta aceptada

Youssef  Khmou
Youssef Khmou el 24 de Sept. de 2013
hi Paul,
thats good as you created random 50,100, that first step is important,
odd and even are related to Modulus, even modulus 2 is zero :
T=round(100*rand(20,1));
evens=T(mod(T,2)==0);
odds=T(mod(T,2)~=0);

4 comentarios

Paul
Paul el 24 de Sept. de 2013
Thank you, that worked for me, however, we haven't learned the "mod" function yet, so is there another method that would work using the "find" function?
FIND has a very different job. The argument, that you have not learned MOD is not powerful: As long as you do not provide a list of command, which you have learned already, we can offer efficiently working solutions only.
It is easy to learn how to use the MOD command:
doc mod
how to display the cell labels in matlab
@Priyanka Marudhavanan, you forgot to give an example of exactly what you want, like do you want to use fprintf() to run along the array printing to the command window. Or do you want to construct a cell array with the words "even" and "odd" in it? Please clarify. Show us what you want.

Iniciar sesión para comentar.

Más respuestas (4)

Azzi Abdelmalek
Azzi Abdelmalek el 24 de Sept. de 2013
Editada: Azzi Abdelmalek el 24 de Sept. de 2013
Edit
a=randi([50 100],1,20)
evens=a(mod(a,2)==0)
odds=a(mod(a,2)==1)
Jan
Jan el 24 de Sept. de 2013

0 votos

Because this is obviously a homework, it would be a good idea to show us, what you have tried so far. "Even" means, that the value can be divided by 2 such that the result has an integer value. While this is exactly what mod(x, 2) does, you can formulate it in many different ways. Perhaps divide by 2, round(), multiply by 2 and compare with the input.
Korede Akinpelumi
Korede Akinpelumi el 16 de Mayo de 2017
Editada: Korede Akinpelumi el 16 de Mayo de 2017

0 votos

function [evens,odds]=assignm
A=randi(51,1,20)+49;
B=50:2:100;
C=51:2:99;
evens=intersect(A,B);
odds=intersect(A,C);
end
Ashok Kumar
Ashok Kumar el 28 de Jun. de 2022

0 votos

Write a code to get one value from user and a. Print the multiplication table for that value in a proper format b. Check whether the given number is odd or even and display it

Categorías

Etiquetas

Aún no se han introducido etiquetas.

Preguntada:

el 24 de Sept. de 2013

Respondida:

el 28 de Jun. de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by