Error: Attempted to access x(101); index out of bounds because numel(x)=100.
6 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Matt Fig
2012-12-3
编辑:Matt Fig
2012-12-3
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 个评论
Matt J
2012-12-3
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.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!