Matlab - Creación de un bingo

 
Vista:
sin imagen de perfil
Val: 20
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Creación de un bingo

Publicado por Julian Camilo (11 intervenciones) el 27/02/2019 05:46:04
Buenas noches compañeros, lo que pasa es que necesito crear un bingo de 5x5 donde los rangos de cada letra son de b=[1:10] de I [11: 20] y así con cada letra de bingo hasta 100 pero en casa vector columna no se puede repetir un ningún número y tiene que ser al azar, ya logré que fuera al azar con el comando Randi pero no logro que no se repitan
¿Me podrían ayudar?
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
sin imagen de perfil
Val: 918
Bronce
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Creación de un bingo

Publicado por Daniel (354 intervenciones) el 27/02/2019 09:33:16
Hola,

El problema requiere se que haga un muestreo de los números, no que se generen unos valores aleatorios. En Matlab se puede realizar un muestreo de datos con “randsample”. Por ejemplo, para tomar una muestra de tres números entre 1 y 10 se puede utilizar:

1
randsample(1:10, 3)

Saludos,
Daniel Rodríguez.
Analytics Lane
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: 20
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Generar numeros al azar en vector columna sin que se repitan y ponerlos en una tabla

Publicado por Julian Camilo (11 intervenciones) el 27/02/2019 14:03:58
vale si necesito que haga ese muestro pero que la matriz me salga en vcetor columna y poderlo añadir a un comando "table" ya que lo hoce con "randsample" y luego saue su transpuesta ese transpueto lo meti como variable para la tabla pero me genera error. adjuntare el codigo con randi para mas o menos dar una idea de como tiene que ser.
1
2
3
4
5
6
7
8
9
10
11
12
clear,clc
B = randi([1,20],4,1);
I = randi([21,40],4,1);
N = randi([41,60],4,1);
G = randi([61,80],4,1);
O = randi([81,100],4,1);
 
 
T = table(B,I,N,G,O);      %Genera la tabla del bingo con el comando table y además se generan vectores columna co randi para aleatorio de numeros enteros. 
                                       % *arreglar que no se repitan
 
disp(T)
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

Generar numeros al azar en vector columna sin que se repitan y ponerlos en una tabla

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 27/02/2019 14:49:59
1
2
3
4
5
6
7
8
9
10
clear
B = unique(randi([1,20],8,1),'stable');
I = unique(randi([21,40],8,1),'stable');
N = unique(randi([41,60],8,1),'stable');
G = unique(randi([61,80],8,1), 'stable');
O = unique(randi([81,100],8,1),'stable');
B=B(1:4);  I=I(1:4); N=N(1:4); G=G(1:4);  O=O(1:4);
 
T = table(B,I,N,G,O);
disp(T)


1
2
3
4
5
6
7
8
>> bingos
    B     I     N     G     O
    __    __    __    __    __
 
    10    23    49    68    89
     5    32    60    73    83
    15    28    41    77    86
    18    37    44    61    87



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


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
1
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

Generar numeros al azar en vector columna sin que se repitan y ponerlos en una tabla

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 27/02/2019 15:00:34
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
clear
while 1
B = unique(randi([1,20],20,1),'stable');
if length(B)>=4
    break;
end
end
 
while 1
I = unique(randi([21,40],20,1),'stable');
if length(I)>=4
    break;
end
end
 
while 1
N = unique(randi([41,60],20,1),'stable');
if length(N)>=4
    break;
end
end
 
while 1
G = unique(randi([61,80],20,1), 'stable');
if length(G)>=4
    break;
end
end
 
while 1
O = unique(randi([81,100],20,1),'stable');
if length(O)>=4
    break;
end
end
B=B(1:4);  I=I(1:4); N=N(1:4); G=G(1:4);  O=O(1:4);
 
T = table(B,I,N,G,O);
disp(T)


1
2
3
4
5
6
7
8
>> bingos
    B     I     N     G      O
    __    __    __    __    ___
 
     4    37    57    71     95
    11    32    43    62     88
    20    36    48    79    100
     8    27    49    78     93


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


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
1
Comentar
sin imagen de perfil
Val: 20
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Generar numeros al azar en vector columna sin que se repitan y ponerlos en una tabla

Publicado por Julian Camilo (11 intervenciones) el 27/02/2019 15:26:24
Muchas gracias 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
sin imagen de perfil
Val: 918
Bronce
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Generar numeros al azar en vector columna sin que se repitan y ponerlos en una tabla

Publicado por Daniel (354 intervenciones) el 27/02/2019 15:34:46
Hola,

Yo no recomendaría usar randi cuando se quiere hacer un muestreo ya que no hay garantías de obtener valores diferentes. Ni siquiera si se usan más valores de los necesarios.

Para un problema tan básico como transponer un vector existe el operador transposición, que son las comillas sencillas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
B = randsample(1:20, 4)';
I = randsample(21:40, 4)';
N = randsample(41:60, 4)';
G = randsample(61:80, 4)';
O = randsample(81:100, 4)';

T = table(B,I,N,G,O)

T =

  4×5 table

    B     I     N     G     O 
    __    __    __    __    __

    16    34    56    66    97
     4    24    54    77    90
     9    30    46    65    88
    10    23    51    63    93

Saludos,
Daniel Rodríguez.
Analytics Lane
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 20
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Generar numeros al azar en vector columna sin que se repitan y ponerlos en una tabla

Publicado por Julian Camilo (11 intervenciones) el 27/02/2019 16:03:56
muchas gracias Daniel
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