MATLAB Answers

Benjamin
0

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?

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

  0 Comments

Products

No products are associated with this question.

1 Answer

Answer by Matt Fig
on 3 Dec 2012
Edited by Matt Fig
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.

  2 Comments

Thanks!

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.

Matt J
on 3 Dec 2012

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.


Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!