Error with a function

2 visualizaciones (últimos 30 días)
Corey Bullard
Corey Bullard el 25 de Abr. de 2012
I have three errors:
??? Subscript indices must either be real positive integers or logicals.
Error in ==> velocity at 3
v = -r*angular_velocity(sin(angular_velocity*t)+((r)/(2*l_value))...
Error in ==> HW10 at 19
x_dot = velocity( r, angular_velocity, t, l_value );
This is part of my script:
for l_value = (r + .5):((15-(r + .5))/5):15;
x_dot = velocity( r, angular_velocity, t, l_value );
v(m) = x_dot;
m = m + 1;
plot(x_dot,l_value);
end
The error seems to be with the function. Here is the function velocity:
function [ v ] = velocity( r, angular_velocity, t, l_value )
%Calculate velocity
v = -r*angular_velocity(sin(angular_velocity*t)+((r)/(2*l_value))...
*((sin(2*angular_velocity*t))/(sqrt(1-((r/l_value)*(...
sin(angular_velocity*t)))^2))));
end
Any help or tips will be greatly appreciated!

Respuesta aceptada

Walter Roberson
Walter Roberson el 25 de Abr. de 2012
angular_velocity*t implies that angular_velocity is a numeric quantity (scalar, vector, array). sin() of that would also be a numeric quantity, but very likely not positive-integer-valued. You then use angular_velocity indexed at that sin() expression, so that is likely to fail.
  2 comentarios
Kevin Holst
Kevin Holst el 25 de Abr. de 2012
translation:
Turn this:
v = -r*angular_velocity(sin(angular_velocity*t)+((r)/(2*l_value))...
into this:
v = -r*angular_velocity*(sin(angular_velocity*t)+((r)/(2*l_value))...
;)
Corey Bullard
Corey Bullard el 25 de Abr. de 2012
Thanks a lot, that fixed it. I'm not sure how I missed that, I will certainly be more careful in the future.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre MATLAB en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by