Matlab - Problema

 
Vista:

Problema

Publicado por SONIA (26 intervenciones) el 13/02/2007 23:11:45
Hola necesito ayuda es que estoy empezando en el matlab y no me aclaro. Si alguien me pudiera ayudar mi problema es el siguiente
yo tengo esto por ejemplo
for i=1:1000
dx=a(i) %a es el valor de la derivada que se va metiendo en dx
if(dx==0)
solucion=0 %lo que kiero acer aki es poner un 0`para diferenciarlo de lo otro que es 1 es decir hacer un vector que tenga un 0 cuando la derivada sea 0 y un 1 cuando no
else
solucion=1
end
end
Despues tengo un programa similar en la que tb hay dos soluciones es una cosa o otra de 0 y 1 por ejemplo el de este programa lo yamo a
y aora tengo que hacer una funcion que me compare y me cuente las veces que es una cosa otra es decir yo e echo
r=0
t=0
p=0
w=0
for i=1:1000
if(solucion==1)&(a==1)%si esto y esto se cumple que contabilize r
r=r+1
elseif(solucion==1)&(a==0)
t=t+1
elseif(solucion==0)&(a==1)
p=p+1
elseif(solucion==0)&(a==0)
w=w+1
end
end
seria asi? es que no me sale y lo he intentado un monton de veces si alguien me ayudara se lo agradeceria muchisimo yo lo que kiero es contabilizar comparando las soluciones de los programas que he escrito primero
MUchas gracias
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:Problema

Publicado por Pumy (38 intervenciones) el 15/02/2007 21:38:40
Hola! Veo que en los dos programas tienes básicamente el mismo error en el uso de los índices.

En el segundo estás comparando 'solucion' con 'a', pero si te he entendido bien esas dos variables son listas de ceros y unos, por tanto lo que quieres comparar es sólo el elemento que está en la posición 'i' de esa lista. Por ejemplo:

if(solucion(i)==1)&(a(i)==0) %te faltaban los (i)

En el caso primero no entiendo muy bien lo que quieres hacer, pero si como dices quieres ir metiendo algo en dx la asignación debería ser:

dx(i)=a;

Pero atención, el valor de a no veo que lo calcules o cambies en todo el bucle for, por tanto se te meterá siempre el mismo valor (el que tuviera antes, y si no tenía ninguno te dará error). También tienes que poner el índice en solución:

if(dx(i)==0)
solucion(i)=0;
else
solucion(i)=1;
end

De la forma que lo tenías estás machacando con los valores nuevos el contenido de la variable y al final no tendrías un array sino un único valor.
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