Error: Attempted to access x(101); index out of bounds because numel(x)=100.
2 ビュー (過去 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 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!