Matlab - Por favor ayuda, contador en matlab

 
Vista:

Por favor ayuda, contador en matlab

Publicado por Patricia (10 intervenciones) el 04/07/2006 15:23:55
Hola,

He generado un programa en matlab que cuenta en tiempo que una señal esta en alto. Pero tengo un problema con el ciclo for.
hay una variable i, que se incrementa en un cliclo while y que quisiera que fuese la variable i del cliclo for cuando vuelve a este pero resulta que se mantiene. mientras que la del while vale ya 6 la del for sigue valiendo 5.

Pego aqui el codigo por si alguien me pudiera ayudar.

dt=[1 2 3 4 5 6 7 8 9 10];
da=[0 0 1 1 1 0 0 1 1 0];
At=0; %tiempo que esta en alto la señal
k=1; % conatodor vector d
l=1; %contador vector t
T=1; %periodo de muestreo
disp(dt);
disp(da);
des=zeros(1,length(dt));
tiem=zeros(1,length(dt));
%disp(des);
%disp(tiem);
j=1;
for i=j:1:length(dt)
if da(i)==1
disp(i);
tiem(l)=dt(i);
disp(tiem);
while da(i)==1
At=At+T;
des(k)=At;
disp(i);
disp(des);
i=i+1;
end
k=k+1;
l=l+1;
At=0;
end
j=i+1;
end
disp(des);
disp(tiem);
disp(length(dt));
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

RE:Por favor ayuda, contador en matlab

Publicado por Edgar Muñoz (62 intervenciones) el 06/07/2006 22:21:22
No entiendo muy bien tu problema pero el funcionamiento del lazo for en Matlab es un tanto diferente a lo que esperas y a lo mejor eso te confunde.

Los valores que realmente toma la variable del lazo for (en tu caso la variable i) es cada elemento del vector despues del signo =. En tu caso el vector será [1 2 3 4 5 6 7 8 9 10], (porque j:1:length(dt) genera estos valores),.En la primera iteración i tomará el valor 1, en la siguiente el valor 2, etc., No importa si la variable sufre algún cambio durante la ejecución del lazo, en la siguiente iteración tomara el valor correspondiente.

Esto lo difierencia de un lazo for de otros lenguajes de programación, donde la variable se incrementa en cada iteración y los cambios en la variable si afectan a la ejecución del lazo.

Si estás familiarizado, el lazo for de Matlab se parece al lazo for each de BASIC.
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