Clear Filters
Clear Filters

help with Index exceeds the number of array elements (1).

1 view (last 30 days)
Hi, i need help with mi code, the error appear at line 32
clear
clc
close all
L=input('Largo de la viga (cm): '); % se pide el largo de la viga, Variable de entrada,
n=input('Cantidad de fuerzas aplicadas en la viga (N):'); %Se pide cuantas fuerzas se le aplicaran a la viga, Variable de entrada
for i=1:1:n %Ciclo 'for' para pedir las n fuerzas y sus respectivas posiciones en la viga
F(i)=input(['Fuerza Aplicada (N): ']); %Se pide el valor de cada fuerza, Variable de entrada
a(i)=input('Posicion de esa fuerza (cm): '); %Se pide la posicion en la que se aplica cada fuerza, Variable de entrada
b(i)=L-a(i) %Variable de salida
end
sumR2=0;
for i=1:n
sumR2=sumR2+F(i)*a(i);
end
R2=sumR2/L;
R1=sum(F)-R2;
disp(['la reaccion en el primer apoyo es: ',num2str(R1),' N']);%Se muestra el valor de la reaccion en el primer apoyo, Variable de salida
disp(['la reaccion en el segundo apoyo es: ',num2str(R2),' N']);%Se muestra el valor de la reaccion en el segundo apoyo, variable de salida
b=input('Ancho de la viga [cm]: ');%Se pide el ancho de la viga, variable de entrada
h=input('alto de la viga, [cm]: ');%Se pide el alto de la viga, Variable de entrada
I=b*h^3/12
x=0:0.1:L;
def=zeros(length(x),length(F)+1);
E=input('Modulo de elasticidad E [Kgf/cm^2]: ');
for j=1:length(F)
for i=1:length(x)
if x(i)>=a(j)
def(i,j)=((F(j)*b(j))/(6*L*E*I))*((L/b(j))*(x(i)-a(j))^3-x(i)^3+(L^2-b(j)^2)*x(i));
else
def(i,j)=((F(j)*b(j))/(6*L*E*I))*(-x(i)^3+(L^2-b(j)^2)*x(i)); %Appear error
end
end
end
def(:,end)=sum(def,2);
plot(x',def(:,end),'')
title('Grafico de Deflexiones')
set(gca,'Ydir','reverse')
xlabel('x [cms]')
ylavel('Deflexiones [cms]')
grid on

Answers (0)

Categories

Find more on MATLAB in Help Center and File Exchange

Tags

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!