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)

 Respuesta aceptada

bio lim
bio lim el 3 de Dic. de 2016

0 votos

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 comentarios

Shelby Russ
Shelby Russ el 3 de Dic. de 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 el 3 de Dic. de 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 el 3 de Dic. de 2016
Oh my gosh, thank you so much. I would have never figured that out.
bio lim
bio lim el 3 de Dic. de 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).

Iniciar sesión para comentar.

Más respuestas (2)

Kevin Agudo
Kevin Agudo el 12 de Abr. de 2021

0 votos

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 comentario

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

Iniciar sesión para comentar.

Johanan
Johanan el 28 de Feb. de 2025

0 votos

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 comentario

Walter Roberson
Walter Roberson el 28 de Feb. de 2025
I do not understand how adapting pend.m will solve the problem of "Function might be unused" ???

Iniciar sesión para comentar.

Categorías

Etiquetas

Preguntada:

el 3 de Dic. de 2016

Comentada:

el 28 de Feb. de 2025

Community Treasure Hunt

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

Start Hunting!

Translated by