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));
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


0