I can't seem to figure our why Matlab doesn't like my function. It keeps telling me that it is probably called incorrectly but I can't see what I did wrong here.
Ideal Boiler Function
hfg=930
lhv=21500
p_percent=100
p=p_percent/100
MFfr=0.5191
%This function will calculate the steam mass flow rate (SMfr)
%of an actual boiler with 100% efficency (p_percent=100%)
%This funtion has 4 inputs (p,hfg,lhv,and MFfr),
%and 1 output (SMfr).
function SMfr=Ideal_Boiler(p,hfg,lhv,MFfr)
SMfr=(MFfr*p*lhv)/hfg;
output=SMfr;
end
disp('SMfr =');disp(SMfr)

 Réponse acceptée

bio lim
bio lim le 3 Déc 2016

0 votes

I don't see any problems, unless you defined the function inside your main script, and MATLAB doesn't allow that.
hfg=930;
lhv=21500;
p_percent=100;
p=p_percent/100;
MFfr=0.5191;
SMfr=Ideal_Boiler(p,hfg,lhv,MFfr)
disp('SMfr =');disp(SMfr)
SMfr =
12.0007
SMfr =
12.0007

4 commentaires

Shelby Russ
Shelby Russ le 3 Déc 2016
Um. So, how do I know if it is defined in the main script? I just opened one and saved my file as the function name and it hates me for it. I'm so confused.
bio lim
bio lim le 3 Déc 2016
You need a two .m files, one for your function and one for your main program.
In one of them, you declare your function as:
function SMfr=Ideal_Boiler(p,hfg,lhv,MFfr)
SMfr=(MFfr*p*lhv)/hfg;
output=SMfr;
end
And in your main program, you actually use the values, and call for your function:
hfg=930
lhv=21500
p_percent=100
p=p_percent/100
MFfr=0.5191
SMfr=Ideal_Boiler(p,hfg,lhv,MFfr) % calling Ideal_Boiler function
And the output is:
SMfr =
12.0007
Shelby Russ
Shelby Russ le 3 Déc 2016
Oh my gosh, thank you so much. I would have never figured that out.
bio lim
bio lim le 3 Déc 2016
My pleasure. One more thing:
In your code, if you end a line with a semi-colom, i.e., ; , MATLAB doesn't print out the results. So in your code:
disp('SMfr =');disp(SMfr)
Is unnecessary, if you just end your function call, i.e., SMfr=Ideal_Boiler(p,hfg,lhv,MFfr) without a semi-colon (Meaning it will print the result out).

Connectez-vous pour commenter.

Plus de réponses (2)

Kevin Agudo
Kevin Agudo le 12 Avr 2021

0 votes

syms t
function y = f(t)
t=linspace(0,100);
f(x)=(3*t^2+1)./(t^3+50);
h=.01;
plot(t ,(f(t+h)-f(t))./h,t,(f(t+h)-2*f(t)+f(t-h))/h^2)
end
When I run the function, dont get a graph and it says "function f may not be used"

1 commentaire

h=.01;
t=linspace(0,100);
plot(t ,(f(t+h)-f(t))./h,t,(f(t+h)-2*f(t)+f(t-h))/h^2)
function y = f(t)
y=(3*t.^2+1)./(t.^3+50);
end

Connectez-vous pour commenter.

Johanan
Johanan le 28 Fév 2025

0 votes

Adapt pend.m to build the double pendulum. A new pair of rod and bob must be defined for the second pendulum. Note that the pivot end of the second rod is equal to the formerly free end of the first rod: The (x, y) position of the free end of the second rod can be calculated by using simple trigonometry.

1 commentaire

Walter Roberson
Walter Roberson le 28 Fév 2025
I do not understand how adapting pend.m will solve the problem of "Function might be unused" ???

Connectez-vous pour commenter.

Catégories

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by