Learning how to use functions
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Tyde Hilderbrandt
el 19 de Nov. de 2021
Respondida: Star Strider
el 19 de Nov. de 2021
Hey, I'm trying to learn how to use functions to solve a problem.
A simply supported beam is loaded as shown in the figure below.
Here is what I have in my Main file:
clc,clear
v=[(5/2) 5 3 30exp(6) (16/625) 30];
[V]=deflection_Hilderbrandt(v);
V
and my function file:
function [V]=deflection_Hilderbrandt(x,L,a,E,I,P)
b=L-a
if 0<=x && a>=x
V=((P*b/(6*E*I*L))*(-L^(2)+b^(2))*x+x^(3))
else a<x && L>=x
V=((P*b/(6*E*I*L))*(-L^(2)+b^(2))*x+x^(3)-(L/b)*(x-a)^(3))
end
fprintf('The value of vertical deflection V is %f \n')
end
I am getting an error in the main file as such:
Line 2: invalid floating point constant
Line2: parse error at ']' :usage might be invalid MATLAB syntax
Thank you for the help
0 comentarios
Respuesta aceptada
Star Strider
el 19 de Nov. de 2021
One problem is that there needs to be a multiplication operator between ‘30’ and ‘exp(6)’.
The other problem is that the data need to be separated into thier individual components to be evaluated in ‘deflection_Hilderbrandt’ however where this is done is simply a mater of code design. (I did it in the calling script here.)
If the rest of the code is correect, thiw works and produces the correct result —
v={(5/2) 5 3 30*exp(6) (16/625) 30};
[x,L,a,E,I,P] = v{:}
[V]=deflection_Hilderbrandt(x,L,a,E,I,P);
V
function [V]=deflection_Hilderbrandt(x,L,a,E,I,P)
b=L-a
if 0<=x && a>=x
V=((P*b/(6*E*I*L))*(-L^(2)+b^(2))*x+x^(3))
else a<x && L>=x
V=((P*b/(6*E*I*L))*(-L^(2)+b^(2))*x+x^(3)-(L/b)*(x-a)^(3))
end
fprintf('The value of vertical deflection V is %f \n')
end
.
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre String Parsing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!