Matlab - Cambiar datos

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

Cambiar datos

Publicado por Jj (45 intervenciones) el 24/02/2019 17:57:36
Buenos días una pregunta

Yo tengo el mismo problema pero en lugar de que los números del vector sean entre 1 y 22 los míos van de 0 a 1

Lo que necesito es que me coja los datos que sean 1 y me los cambie por un valor aleatorio entre 1 y 3 y si es 0 me lo dejé en 0 gracias espero me puedan 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: 8
Ha disminuido su posición en 85 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Cambiar datos

Publicado por Jj (45 intervenciones) el 24/02/2019 23:39:47
Muchas gracias esta perfecto una pregunta si necesitara me saliera el valor pero en entero cómo podría hacer? Y si el valor aleatorio viniera de un vector de acuerdo a los elementos de ese vector sería el rango como podría quedar Gracias
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: 8
Ha disminuido su posición en 85 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Cambiar datos

Publicado por Jj (45 intervenciones) el 24/02/2019 23:52:17
Una última pregunta, me salió muy bien Gracias de verdad, si yo necesitara que el rango que hace el número aleatorio sea traído de una base de datos ejemplo base de datos [123] ósea que los valores que puede tomar 1 sea de uno a tres y si aumentan datos o cambian los valores de esa base de datos también cambie el rango como podría hacer mil gracias si me puede ayudar
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

Cambiar datos

Publicado por Daniel (354 intervenciones) el 25/02/2019 16:00:54
Hola,

Este es un problema que se puede resolver con una sola línea de código. Buscando los valores que son iguales un valor y reemplazando estos por un vector aleatorio.

1
2
3
4
5
6
7
8
9
10
11
12
min_v = 1;	% Valor mínimo de números aleatorios
max_v = 3;	% Valor máximo de números aleatorios
value = 1;	% Valor a buscar.
 
% Vector de ejemplo.
v = [0 0 1 0 1 0 1 0 1 1];
 
% Los números aleatorios enteros se pueden obtener directamente con randi.
v(v==value) = randi([min_v, max_v], 1, sum(v==value))
 
% En caso de ser reales rand es la opción
v(v==value) = rand(1, sum(v==value)) * max_v + min_v

He dejados dos versiones una con randi para reemplazar con números enteros y otra con rand para reemplazar números reales.

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