Matlab - REalizar COnteos

 
Vista:

REalizar COnteos

Publicado por Miguel (8 intervenciones) el 16/04/2010 22:22:22
HOla a todos mi problema es el siguente
EStoy realizando algo sobre generaciòn de numeros aleatorios con matlab y necesito hacer un conteo de rachas

un ejemplo es el siguiente

0 0.0001 0.1 0.23 0.5 0.88 0 0.2 0.456 0.55
la racha es despuès del primer elemento hasta que encuentra el cero osea
0.0001 0.1 0.23 0.5 0.88 lo que da 5 el conteo de esos numeros

Acaso existe un comando en matlab que me pueda hacer eso?

gracias por la atenciòn
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

RE:REalizar COnteos

Publicado por Jorge (226 intervenciones) el 16/04/2010 23:50:42
Ignoro si hay una instrucción para eso, me parece que no.
Puedes utilizar ' find ' para encontrar estratégicamente ciertos índices.

Si sólo buscas la primera racha, entonces puedes encontrarla así:

v = [0 0.0001 0.1 0.23 0.5 0.88 0 0.2 0.456 0.55]
d = find(v==0);
r = d(2)- d(1) -1

Si buscas todas las rachas del vector, puedes hacerlo así:

v = [0 0.0001 0.1 0.23 0.5 0.88 0 0.2 0.456 0.55 0]
d = find(v==0);
for i = 1 : length(d)-1
r(i) = d(i+1) - d(i) -1;
end
r
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

RE:REalizar COnteos

Publicado por luis (1 intervención) el 17/04/2010 02:12:04
Muchas gracias por sacarme de esta duda
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

RE:REalizar COnteos

Publicado por Luis miguel (8 intervenciones) el 17/04/2010 03:52:44
Una ultima pregunta , hay una forma de poderlo hacer matricialmente

es decir
w=[0 1 2 3 4 0 1 2;0 8 7 1 0 1 5 8]

0 1 2 3 4 0 1 2
0 8 7 1 0 1 5 8

arroje la racha por fila
rachamatriz=[4;3] con 4 de la racha de la primera fila y 3 racha de la segunda fila

lo intnte sacar mirando ese comando [r, c]=find(x) pero me sale error
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

RE:REalizar COnteos

Publicado por Jorge (226 intervenciones) el 17/04/2010 08:23:57
Supongo que sólo cuentas una racha en cada renglón.
Una manera de resolverlo sería así:

w = [0 1 2 3 4 0 1 2
0 8 7 1 0 1 5 8
0 1 3 0 8 1 2 3]'

d = find(w==0)'
j = 1;
for i = 1 : 2 : length(d)-1
r(j) = d(i+1) - d(i) -1;
j = j+1;
end
r

Hay que notar que w(1)=w(2)=w(3)=0, w(4)=1, por ello transpongo primero la matriz
(w', en lugar de w).
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