Error with a function

2 ビュー (過去 30 日間)
Corey Bullard
Corey Bullard 2012 年 4 月 25 日
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!

採用された回答

Walter Roberson
Walter Roberson 2012 年 4 月 25 日
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 件のコメント
Kevin Holst
Kevin Holst 2012 年 4 月 25 日
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 2012 年 4 月 25 日
Thanks a lot, that fixed it. I'm not sure how I missed that, I will certainly be more careful in the future.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMATLAB についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by