MATLAB Answers


Error: Attempted to access x(101); index out of bounds because numel(x)=100.

Asked by Benjamin on 3 Dec 2012

I am trying to write a function that will solve for the deflection of a beam given other information.

I am not sure what the error is and I have been trying to solve it for a really long time. The first part of the script (up until the first 'if') is meant to create values that will be already made after I call the function.

Does anybody know what my problem is?

beam.load=1; = 1;
L = 30;
x = linspace(0,L);
a = 20;
E = 10.0E6;
I = 9;
F = 100;
i = 1;
if beam.load == 1 && == 1 % Point & Cantilever
    while 0 < x(i) < a
        y(i) = F*x(i)^2/(6*E*I)*(3*a - x(i));
        i = i + 1;
    while a < x(i) < L
        y(i) = F*a^2/(6*E*I)*(3*x(i) - a);
        i = i+1;


Log in to comment.

1 Answer

Answer by Loginatorist on 3 Dec 2012
Edited by Loginatorist on 3 Dec 2012
 Accepted Answer

You want

0 < x(i) && x(i) < a

Your expressuon evaluates to:

1 < a 

Because MATLAB evaluates from left to right. Similarly for the next conditional.



However, for some reason it didn't work with

0 < x(i) < a

I had to change it to

x(i) < a

and it worked.

However, for some reason it didn't work with 0 < x(i) < a.

Matt Fig explained to you why that wouldn't work and cited that as the very problem with the original code.

Log in to comment.

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today