Obtain a specif value in a vector

Hi guys, I'm having a problem; let's say I have a code like the following:
clear
g = ones(1,1);
serv = (randi([0, 10], [10,10])).*g;
meanserv = mean(serv);
At this point, what I need is a value of g such that meanserv(1,1) is equal to 0.3 and meanserv(1,10) is equal to 0.7; I was thinking to use an fsolve or a simple while/if but I can't figure out how to obtain those results.
Thanks in advance.

4 comentarios

Adam
Adam el 22 de Oct. de 2019
If you have the Statistics toolbox
doc normrnd
will give you normally distributed numbers from a population with a given mean, but a sample of 10 from this will give you a mean that is often a notable distance away from 0.3. The only way you could guarantee exactly 0.3 is to fix the numbers instead of taking random numbers. You could do a loop to get as close as possible to 0.3 if that is acceptable. Though as an aside I think I am correct in saying 0.3 cannot be exactly represented by a double anyway.
I was using something like this
while (meanserv(1,1) > 0.3) && (meanserv(1,10) < 0.7)
if meanserv(1,1) < 0.3
break
end
if meanserv(1,10) > 0.7
break
end
end
Adam
Adam el 22 de Oct. de 2019
Nothing changes in that while loop though!
Giuseppe Pintori
Giuseppe Pintori el 22 de Oct. de 2019
Exactly

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Programming en Centro de ayuda y File Exchange.

Productos

Versión

R2019b

Etiquetas

Preguntada:

el 22 de Oct. de 2019

Comentada:

el 22 de Oct. de 2019

Community Treasure Hunt

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

Start Hunting!

Translated by