# Matlab: Problem with function inputs

jdawg

## Homework Statement

The volume V of a liquid in a partially filled ellipsoid shaped tank is given by
V = (pi/3)*(3*a-h)*(((b^2)*(h^2))/(a^2))
Develop an M-file to create a plot of volume versus depth. Here are the first few lines:
function myellipsoid(a,b,plot_title)
% Volume of horizontal ellipsoid
% Inputs:
% a - vertical semiaxis
% b - horizontal semiaxis
% plot_title - string holding plot title Test your program with:
>> myellipsoid(2,5,'Volume versus depth for ellipsoid')

I'm having trouble with this function, I'm not really sure what I'm doing wrong.

Staff Emeritus
Homework Helper

## Homework Statement

The volume V of a liquid in a partially filled ellipsoid shaped tank is given by
V = (pi/3)*(3*a-h)*(((b^2)*(h^2))/(a^2))
Develop an M-file to create a plot of volume versus depth. Here are the first few lines:
function myellipsoid(a,b,plot_title)
% Volume of horizontal ellipsoid
% Inputs:
% a - vertical semiaxis
% b - horizontal semiaxis
% plot_title - string holding plot title Test your program with:
>> myellipsoid(2,5,'Volume versus depth for ellipsoid')

I'm having trouble with this function, I'm not really sure what I'm doing wrong.

## The Attempt at a Solution

From the figures attached, it looks like h can run only between 0 and 2*a. IDK why you have h running between 0 and 3*a.

In any event, when the tank is full, you should obtain a finite, non-zero value for the volume.

• jdawg
jdawg
Hmmm... I just retyped it as h = 0:(2*a); and got this error:

function myellipsoid(a,b,plot_title)

Error: Function definitions are not permitted in this context.

Staff Emeritus
Homework Helper
Hmmm... I just retyped it as h = 0:(2*a); and got this error:

function myellipsoid(a,b,plot_title)

Error: Function definitions are not permitted in this context.
Ya got something wrong somewhere in the function myellipsoid.

In any event, you should be able to calculate by hand the full volume of the ellipsoid given the dimensions of the axes. If your function can't do that, then further debugging is required.

• jdawg
jdawg
oops, I tried rerunning it and it gave me the same message as earlier;

>> myellipsoid(2,5,'Volume versus depth for ellipsoid')
Not enough input arguments.

Error in myellipsoid (line 12)
h = 0:(2*a);

Staff Emeritus
Homework Helper
oops, I tried rerunning it and it gave me the same message as earlier;

>> myellipsoid(2,5,'Volume versus depth for ellipsoid')
Not enough input arguments.

Error in myellipsoid (line 12)
h = 0:(2*a);
You've apparently got some disagreement between the call to myellipsoid and its definition. Since you have not provided the definition, I can't really help further.

The function myellipsoid apparently is expecting more than 3 arguments to be passed to it, or the ones you are passing are not being recognized properly.

I don't know if Matlab lets you pass numeric arguments by value. You could make up a couple of dummy variable names and assign values of a and b to those variables and see if the error goes away.