Matlab - DUDA CON RAND

 
Vista:

DUDA CON RAND

Publicado por Jose (10 intervenciones) el 17/03/2012 19:55:35
Saludos a tod@s;

tengo una duda con el comando rand, simplemente quería saber si alguien me podría decir como generar un número aleatorio definido en un intervalo, es decir, que al escribir A=rand , el valor de A esté siempre comprendido entre 8 y 9 por ejemplo.

Muchas gracias por adelantado y saludos.

Jose
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

DUDA CON RAND

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 17/03/2012 20:54:28
Hola Jose Manuel.
la idea es construir una funcion f lleve elementos desde el intervalo (0,1) hacia el intervalo (a,b)
es decir f:(0,1)---------> (a,b) talque f(x)=¿?, donde x esun elemento que esta en el intervalo (0,1).
Debes consruir la funcion f, de tal manera haga lo que te digo.
Bueno es una pregunta clasica, porque casi siempre le tomo a mis alumnos de pregrado de la univ a hora del examen, cuando enseño el curso de matlab.



Saludos
JOSE JEREMIAS CABALLERO

Servicios de programacion matlab


Asesor de Proyectos con Matlab
programador en matlab
[email protected]

http://matlabcaballero.blogspot.com/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Dave
Val: 497
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

DUDA CON RAND

Publicado por Dave (1094 intervenciones) el 19/03/2012 16:54:57
Hola José;

En pocas palabras, solo debes generar un numero aleatorio y sumarle 8, aqui un ejemplo:

1
2
3
function sal=rand89
 
sal=8+rand;


1
2
3
4
5
6
7
>> sal=rand89
sal =
    8.1419
 
>> sal=rand89
sal =
    8.4218


Espero que sea de alguna ayuda.

Saludos
Dave Correa
[email protected]
Servicios de Programación Matlab
http://fismatlab.blogspot.com/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

DUDA CON RAND

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 19/03/2012 17:10:30
Hola Jose.
La funcion que te habia puesto f, es f(x)=a+(b-a)x, esa funcion lleva todos numeros del intervalo (0,1) al intervalo (a,b). Para tu caso el intervalo (a,b)=(8,9)
V=rand(1,5),
a=8; b=9;
f=a+(b-a)*V

1
2
function [V,f]=intervalo_aleatorio(V,a,b)
f=a+(b-a)*V;


EJECUCIONES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
>> [V,f]=intervalo_aleatorio(rand(1,4),8,9)
V =
   0.2375    0.6312    0.2067    0.1433
 
f =
   8.2375    8.6312    8.2067    8.1433
 
>> [V,f]=intervalo_aleatorio(rand(1,8),4,10)
V =
    0.7052    0.9343    0.5322    0.0126    0.0693    0.4227    0.0046    0.2115
f =
 
    8.2313    9.6057    7.1933    4.0759    4.4155    6.5360    4.0276    5.2691
 
>> [V,f]=intervalo_aleatorio(rand,12,15)
V =
   0.3493
 
f =
   13.0480



Saludos
JOSE JEREMIAS CABALLERO

Servicios de programacion matlab


Asesor de Proyectos con Matlab
programador en matlab
[email protected]

http://matlabcaballero.blogspot.com/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Dave
Val: 497
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

DUDA CON RAND

Publicado por Dave (1094 intervenciones) el 19/03/2012 17:22:39
Hola José;

Te adjunto una versión generica:

1
2
3
4
5
6
7
8
9
10
function sal=rand89(n,limmin,limmax)
% n: cantidad de numeros aleatorios a generar
% limmin: umbral minimo
% limmax: umbral máximo
%
% sal: elemento o vector de numeros aleatorios generados
 
for nn=1:n
sal(nn)=limmin+(limmax-limmin)*rand;
end


Ejecución:

1
2
3
4
5
6
7
>> sal=rand89(10,8,9)
sal =
    8.3404    8.5853    8.2238    8.7513    8.2551    8.5060    8.6991    8.8909    8.9593    8.5472
 
>> sal=rand89(10,8,9)
sal =
    8.1386    8.1493    8.2575    8.8407    8.2543    8.8143    8.2435    8.9293    8.3500    8.1966



Se puedes hacer algunas modificaciones para validar algunos aspectos de la ejecución del programa.
Espero que sea de alguna ayuda.

Saludos
Dave Correa
[email protected]
Servicios de Programación Matlab
http://fismatlab.blogspot.com/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

DUDA CON RAND

Publicado por Jose Manuel (10 intervenciones) el 19/03/2012 17:51:58
Muchísimas gracias a los dos por vuestro interés. He conseguido resolver mi duda gracias a vuestras intervenciones.

Saludos.

Jose
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar