Trying to get a function to apply to values in an array

1 visualización (últimos 30 días)
Noah D'Ascanio
Noah D'Ascanio el 14 de En. de 2021
Editada: Matt J el 14 de En. de 2021
I'm trying to make a plot of depths from 0 up to 3*R for a R of 10 for the following function:
function V = tank(R,d)
% This function determines the volume in a tank comprised of a conical
% base of height R and a cylandrical tank of height 3R. Values of the depth of water, d, and R
% are inputted to determine the volume of the tank and if it exceeds the
% overfill limit.
OV = "Overflow";
VC =0;
Vcyl=0;
if d>(3*R)
disp(OV)
elseif d < R
VC = pi*R^2*(d/3);
Vcyl =0;
else
VC = pi*R^2*(R/3);
Vcyl = pi*R^2*(d-R);
end
V = Vcyl + VC;
By using the following script:
R = 10;
dmax = 3*R
inc = 0.5
d = 0:inc:dmax
V = tank(R,d);
My V array of V values is way off and I cant figure out where I went wrong. I'm assuming it has something to do with not applying the finction to each value of the d array I created?

Respuesta aceptada

Matt J
Matt J el 14 de En. de 2021
Editada: Matt J el 14 de En. de 2021
One way to fix it,
V=arrayfun(@(z)tank(10,z), d);

Más respuestas (0)

Categorías

Más información sobre Statistics and Machine Learning Toolbox en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by