Matlab - Extracción aleatoria de los elementos de un vector

 
Vista:

Extracción aleatoria de los elementos de un vector

Publicado por Jesús Molina Machuca (11 intervenciones) el 12/12/2011 19:53:41
Buenas tardes,
Estoy intentando extraer un numero de elementos n de un determinado vector a y quiero que la extracción sea aleatorio.
¿Alguien puede decirme un comando con el que pueda hacerlo?
Muchas gracias,
Jesús
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

Extracción aleatoria de los elementos de un vector

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 13/12/2011 22:50:48
HOla Jesus.
Aqui esta la respuestas, donde a es un vector cualquiera, y en el vector extracion se extrae aleatoriamente algunos elementos del vector a.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
>> a=round(50*rand(1,15))
a =
    46    39    24    22    22    15    25    26    41    40    32    19    41    27    18
 
>> b=round(9*rand(1,10)+1); extracion=a(b)
extracion =
    41    41    15    25    15    24    22    22    24    41
 
>> b=round(9*rand(1,10)+1); extracion=a(b)
extracion =
    24    24    24    24    22    22    41    22    24    41
 
>> b=round(9*rand(1,10)+1); extracion=a(b)
extracion =
    40    22    39    24    22    15    24    15    25    24
 
>> b=round(9*rand(1,10)+1); extracion=a(b)
extracion =
    39    22    22    22    15    39    24    26    46    41



Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Profesor de Metodos Numericos con Matlab
PROGRAMADOR EN MATLAB
[email protected]
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

Extracción aleatoria de los elementos de un vector

Publicado por Jesus Molina Machuca (11 intervenciones) el 14/12/2011 16:34:45
Buenas tardes,
Muchas gracias por la respuesta, pero no es exactamente lo que quiero. Tengo un vector de 1 millon de componentes y quiero coger el 10 por ciento aleatoriamente pero sin que se me repitan. Es decir, coger 100.000 componentes pero por orden y que no se repitan.

Saludos,
Jesus Molina Machuca
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

Extracción aleatoria de los elementos de un vector

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 14/12/2011 16:39:56
Hola Jesus.
En ningun momento dices que ninguno de los elementos que se extraigan no se deben repetir,
tampoco dices que es el 10%.
Es por esa razon que le digo a los usuarios del foro, que deben poner toda la informacion posible, cuando hagan sus preguntas.

Ademas ya haz comprobado si matlab,soporta un millon de elementos de entrada de un vector?.


Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Profesor de Metodos Numericos con Matlab
PROGRAMADOR EN MATLAB
[email protected]
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

Extracción aleatoria de los elementos de un vector

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 14/12/2011 16:44:07
HOla Jesus.
Copia parte de tu vector, para ver como son sus elementos.
porque tu preguna tiene muchos vacios.
Y asi no te puedo ayudar con precision.
y explica con mas detalle que es lo quieres exactamente.


Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Profesor de Metodos Numericos con Matlab
PROGRAMADOR EN MATLAB
[email protected]
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

Extracción aleatoria de los elementos de un vector

Publicado por Jesus Molina Machuca (11 intervenciones) el 14/12/2011 16:44:35
Buenas tardes,
Perdon por no haber aclarado bien el problema.
Si me los acepta.

Muchas gracias,
Jesus
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

Extracción aleatoria de los elementos de un vector

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 14/12/2011 16:54:46
hola Jesus.
Acepto tus disculpas.
Pero trata de hacer bien preguntas.
Muchas veces el usario se queda descontento con la respuesta que le doy, no porque la respuesta este mal, sino porque ellos hicieron mal sus preguntas y no fueron precisos.
Por mi parte tengo experiencia en programacion y antes de contestar una pregunta, lo filtro y lo vuelvo a filtrar para ver si hay errores.

Los programadores son como especie de coches de carrera y el piloto son ustedes(las personas que hacen las preguntas), ustedes deben conducir los coches, si ustedes conducen mal coche (es decir no hacen con detalle sus preguntas) , entonces el coche ira por donde sea (osea los programadores).

Nose, si me dejo entender con mi metafora que te escribo.


Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Profesor de Metodos Numericos con Matlab
PROGRAMADOR EN MATLAB
[email protected]
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

Extracción aleatoria de los elementos de un vector

Publicado por Jesus Molina Machuca (11 intervenciones) el 14/12/2011 16:54:47
Mi vector es un vector de numeros de longitud n y quiero coger m elementos aleatorios en orden, es decir, que si primero toma el elemento de la componente 3, el primer y segundo elemento no lo podra tomar, en orden creciente de la componente.
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

Extracción aleatoria de los elementos de un vector

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 14/12/2011 16:57:37
HOla Jesus.
Mejor conectate via messenger de hotmail y asi me explica mejor.
Pero hazlo, atravez de video llamada o audio llamada osea con voz.
Estoy en linea


Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Profesor de Metodos Numericos con Matlab
PROGRAMADOR EN MATLAB
[email protected]
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

Extracción aleatoria de los elementos de un vector

Publicado por Dave (1094 intervenciones) el 07/02/2012 17:29:26
Hola Jesús;

Respecto a tu consulta, hace algun tiempo elebore una función de para obtener cierta cantidad de numero aleatorios enteros unicos en un determinado rango de valores.

Te copio la función:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
function [out]=random2(ini,fin,num)
% Choosse randomly a number (num) of elements from a vector [ini:fin]
% Randomly change the position of the vector. in pairs of twos
% 
% Imput:
% ini: Beginning of the vector
% fin: End of the vector
% nun: Number of elements to choose from the range of vector [ini:fin]
% 
% Output
% output vector
% 
%    contact:
%    Dave Correa 
%    correa.dave30@gmail.com
%    http://fismatlab.blogspot.com
%
% Example
% 
% [out]=random2(-20,20,10)
% 
% out =
%     -1     5    18    -3     1   -17    15     7     3    -6
% 
% [out]=random2(5,50,10)
% 
% out =
%     29    19    20    47    43    18    14    48    23    28
 
 
vr=ini:fin;             % Reference Vector
lon=fin-ini;            % variation or range of the vector
 
for nv=1:5*length(vr)   % vector length.
    p1=ceil(lon*rand);  % randomly chooses position to move. 
    p2=ceil(lon*rand);  % randomly selects the position where it is going to move.
    tp=vr(p1);          % temporal position.
    vr(p1)=vr(p2);      % Change inicial by end position.
    vr(p2)=tp;          % Change end by inicial position.
end
 
   out=vr(1:num);         % output vector



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

Extracción aleatoria de los elementos de un vector

Publicado por ivan paredes (1 intervención) el 13/08/2016 02:26:14
buenas noches espero se encuentre bien y felicitarle por du blog que es de gran valia
mi pregunta es que si matlab me permite dentro de un bucle de repeticion por ejemplo for se puede ir numerando las matrices que me salen como resultado por ejemplo tengo una matriz k que quiero que cada que se realiza el bucle se vaya numerando como k1 k2 k3 .... asi hasta el valor final elegido
muchas gracias por su amable respuesta
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
sin imagen de perfil
Val: 100
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Extracción aleatoria de los elementos de un vector

Publicado por Dinibel (53 intervenciones) el 27/10/2017 16:32:36
Hola. Esta funcion es aplicable a un vector, pero y si lo quisiera utilizar para un arreglo con mas dimensiones, es decir, de, no se 100 filasy 5 columnas
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

Extracción aleatoria de los elementos de un vector

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 28/10/2017 01:53:10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
clear all
 trn_set=round(20*rand(7,5))
 n=size(trn_set,1);
 m=n;
i=1;
while i<=n
    seleccion=randi([1,n],1);
    trn_set1(i,:)=trn_set(seleccion,:);
    trn_set(seleccion,:)=[];
    n=size(trn_set,1);
    if i==round(m/2)
        break;
    end
    i=i+1;
end
 trn_set1
 trn_set2= trn_set

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
>> seleccion_aleatoria
trn_set =
     9     6     7    16    20
    17     3    18    20    11
    13     7     6    17    15
     7    15    12     2    17
     7    14     6     7     3
     5    14     3     5    18
    19     0     8     6     2
trn_set1 =
     5    14     3     5    18
     7    14     6     7     3
     7    15    12     2    17
     9     6     7    16    20
trn_set2 =
    17     3    18    20    11
    13     7     6    17    15
    19     0     8     6     2


Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matla
b

http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
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