# Index out of bounds

1 visualizzazione (ultimi 30 giorni)
bugatti79 il 2 Ago 2014
Commentato: Star Strider il 4 Ago 2014
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
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Risposta accettata

Star Strider il 2 Ago 2014
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 CommentiMostra NessunoNascondi Nessuno
bugatti79 il 4 Ago 2014
Thanks
Star Strider il 4 Ago 2014
My pleasure!

Accedi per commentare.

### Più risposte (1)

Image Analyst il 2 Ago 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]);
##### 1 CommentoMostra -1 commenti meno recentiNascondi -1 commenti meno recenti
bugatti79 il 4 Ago 2014
ok, guys, that makes sense. Thanks.

Accedi per commentare.

### Categorie

Scopri di più su Solver Outputs and Iterative Display in Help Center e File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by