how can i overcome this error ?

t = 0:0.0001:0.07;
v0 = input('please Enter the value for v0:');
R = input('please Enter the value for resistance:');
C = input('please Enter the value for capacitacne:');
f = input('please Enter the value for frequency:');
m = length(t);
state = 'on';
for A = 1:m
    switch state 
        case 'on'
vs(A) = v0 * sin(2*pi*f*t(A));
    vR(A) = vs(A);
    iR = vR(A)/R;
    iC = 2*pi*f*C*v0*cos(2*pi*f*t(A));
    I = iC + iR;
    if I<=0
       state = 'off';
       tA = t(A);
    end
        case 'off'
    vR(A) = v0*sin(2*pi*f*tA)*exp(-(t(A)-tA)/(R * C));
      if vs(A) >= vR(A)
          state = 'on';
      end
    end
end
plot (t,vs,':',t,vR,'k')
Error:
??? Attempted to access vs(45); index out of bounds because numel(vs)=44.
Error in ==> untitled1 at 24
if vs(A) >= vR(A)

 Respuesta aceptada

Walter Roberson
Walter Roberson el 11 de Sept. de 2013

0 votos

In the case of 'off', you make an assignment to vR(A) but not to vs(A), but then you attempt to compare vR(A) to the (non-existent) vs(A). You need to decide what value vs(A) should have at that point and make sure the assignment happens.

Más respuestas (0)

Categorías

Más información sobre Deep Learning Toolbox en Centro de ayuda y File Exchange.

Etiquetas

Aún no se han introducido etiquetas.

Preguntada:

el 11 de Sept. de 2013

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by