フィルターのクリア

Index out of bounds

1 回表示 (過去 30 日間)
bugatti79
bugatti79 2014 年 8 月 2 日
コメント済み: Star Strider 2014 年 8 月 4 日
Folks,
What is wrong with this simple code?
Fo=100;
wn=20;
k=2000;
m=5;
w=30;
x0=.1;
x0_dot=.1;
f_0=Fo/m;
for i=1:100;
X(i)=Fo/(k-m*w(i)^2);
end
figure;
plot(w,X);
xlabel('w');
ylabel('X');
I get the following error
Attempted to access w(2); index out of bounds because numel(w)=1.
Error in Example315pg326RAO (line 21)
X(i)=Fo/(k-m*w(i)^2);
Thanks

採用された回答

Star Strider
Star Strider 2014 年 8 月 2 日
Your w variable is defined as a constant scalar: w=30. You have to define w as a 100-element vector, because your code doesn’t make sense otherwise (specifically the loop that calculates X(i)).
  2 件のコメント
bugatti79
bugatti79 2014 年 8 月 4 日
Thanks
Star Strider
Star Strider 2014 年 8 月 4 日
My pleasure!

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

その他の回答 (1 件)

Image Analyst
Image Analyst 2014 年 8 月 2 日
Is w a constant? Or does it change depending on what i is? If so, how? By the way, it doesn't even matter if you vectorize your code, though since you're plotting versus w it looks like it's supposed to be an array. I made it an array in the "fixed" code below:
fontSize = 24;
Fo = 100;
wn = 20;
k = 2000;
m = 5;
% Make w go from 30 to 60
w = linspace(30, 60, 100);
x0 = .1;
x0_dot = .1;
f_0= Fo / m;
X = Fo ./ (k-m*w.^2);
plot(w, X, 'b-', 'LineWidth', 3);
xlabel('w', 'fontSize', fontSize);
ylabel('X', 'fontSize', fontSize);
title('X vs. w', 'fontSize', fontSize);
grid on;
% Enlarge figure to full screen.
set(gcf, 'units','normalized','outerposition',[0 0 1 1]);
  1 件のコメント
bugatti79
bugatti79 2014 年 8 月 4 日
ok, guys, that makes sense. Thanks.

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

カテゴリ

Help Center および File ExchangeSolver Outputs and Iterative Display についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by