Matlab: Problem with function inputs

  • Thread starter Thread starter jdawg
  • Start date Start date
  • Tags Tags
    Function Matlab
Click For Summary
The discussion revolves around creating a MATLAB function to plot the volume of a liquid in a partially filled ellipsoid tank, defined by the equation V = (pi/3)*(3*a-h)*(((b^2)*(h^2))/(a^2)). Users are encountering issues with function inputs, particularly with the variable 'h' not being correctly defined within the range of 0 to 2*a, leading to errors such as "Function definitions are not permitted in this context" and "Not enough input arguments." It is suggested that the function may be expecting more than three arguments or that the inputs are not being recognized properly. Debugging is recommended, including checking the function definition and ensuring proper argument passing. The conversation emphasizes the need for accurate input handling to successfully execute the function.
jdawg
Messages
366
Reaction score
2

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.

Homework Equations

The Attempt at a Solution

 

Attachments

  • grph.png
    grph.png
    39.1 KB · Views: 670
  • watt.png
    watt.png
    4.8 KB · Views: 584
Physics news on Phys.org
jdawg said:

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.

Homework Equations

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.
 
  • Like
Likes 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.
 
jdawg said:
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.
 
  • Like
Likes 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);
 
jdawg said:
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 let's 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.
 

Similar threads

  • · Replies 3 ·
Replies
3
Views
1K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 10 ·
Replies
10
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
Replies
2
Views
1K
Replies
2
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
Replies
7
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 2 ·
Replies
2
Views
3K