Trying to use function ,didnt work?

function [Delta]= finddeflexion(Length)
E= 4.2*(10.^10);
I = 1*(10.^-5);
W = 8500;
prompt = "What is the length of the blade? ";
Length = input(prompt);
Delta = W*(Length^3)/(8*E*I);
when i typed it like this it gave me error sayin to type the function part like so and i dont understand why
function [Delta]= finddeflexion(~)
the code then works fine

2 Comments

Why are you having "Length" as function parameter?
not sure what you mean by function parameter

Sign in to comment.

 Accepted Answer

when i typed it like this it gave me error
I doubt it gave you an error. It certainly doesn't give me one.
You probably got a Code Analyzer warning saying that the input argument "Length" is not being used. If you want it to be used remove the line which overwrites it:
function [Delta]= finddeflexion(Length)
E= 4.2*(10.^10);
I = 1*(10.^-5);
W = 8500;
prompt = "What is the length of the blade? ";
%Length = input(prompt);
Delta = W*(Length^3)/(8*E*I);
end

10 Comments

still dosent work wont let me input length which i am trying to do for quite some time
finddeflexion(length)
Error using length
Not enough input arguments.
if instead of e I and w i use the actual values in the equation it worked once but then same error
You have a lower case 'L' in length.
finddeflexion(10) %it works
ans = 2.5298
function [Delta]= finddeflexion(Length)
E= 4.2*(10.^10);
I = 1*(10.^-5);
W = 8500;
prompt = "What is the length of the blade? ";
%Length = input(prompt);
Delta = W*(Length^3)/(8*E*I);
end
finddeflexion(Length)
Unrecognized function or variable 'Length'.
Did you mean:
>> finddeflexion(length)
Error using length
Not enough input arguments.
Either version is fine, but you should not be passing variables that haven't been assigned values to the function.
Length=10;
Delta = finddeflexion(Length) %it works
Delta = 2.5298
length=5;
Delta = finddeflexion(length) %it works - but Matlab's builtin length command is now unavailable
Delta = 0.3162
function [Delta]= finddeflexion(Length)
E= 4.2*(10.^10);
I = 1*(10.^-5);
W = 8500;
prompt = "What is the length of the blade? ";
%Length = input(prompt);
Delta = W*(Length^3)/(8*E*I);
end
iam trying to run it as a script and that is when it doesn't seem to be working for me. i thought if i hit run it wourld display [Delta]= finddeflexion(Length) but when i check options it says i can change what is in (length) to the value i want to put in but it wont let it run (length)
Matt J
Matt J on 12 Dec 2023
Edited: Matt J on 12 Dec 2023
In my last post, I ran it for you as a script. That is why you can see the output. If you put what I coded above in a script and hit Run, with no additional options, it will work.
if you look at these images you will understand what i am trying to say
i want it s when i run it it displays as so
[Delta]= finddeflexion(Length)
and then let me the user type in the value for length
in first screen shot i have underlined what i mean by options when running, it seems that i have to put in value first like so, instead of just pressing run and changing the value of length in command window
instead of just pressing run and changing the value of length in command window
Yes, we removed the line where you are prompted for the Length from the command window.
If you want to set the Length variable in the command window, then you should put that line back in, but remove "Length" from the function signautre line
function [Delta]= finddeflexion() %or finddeflexion(~)
E= 4.2*(10.^10);
I = 1*(10.^-5);
W = 8500;
prompt = "What is the length of the blade? ";
Length = input(prompt); %<--- put this line back in
Delta = W*(Length^3)/(8*E*I);
end

Sign in to comment.

More Answers (0)

Tags

Asked:

on 12 Dec 2023

Edited:

on 12 Dec 2023

Community Treasure Hunt

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

Start Hunting!