Index out of bounds
Show older comments
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
Accepted Answer
More Answers (1)
Image Analyst
on 2 Aug 2014
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]);

Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!