MATLAB function creation and application

AI Thread Summary
The discussion revolves around creating MATLAB functions for calculating the surface area and volume of various shapes based on user input. The user is struggling with the correct implementation of function calls and the structure of the function files, particularly with defining parameters and managing global variables. Errors encountered include issues with executing the function and unassigned output arguments, indicating a need for proper function syntax and logic. The user is advised to ensure that the function files are correctly defined and that parameters are passed appropriately. The conversation highlights the importance of understanding function creation in MATLAB for effective programming.
GE2014
Messages
11
Reaction score
0

Homework Statement



*see attachment*

Homework Equations





The Attempt at a Solution



Alright, so we just began messing with functions in our class and I'm kinda struggling to grasp this assignment. I believe it should begin like this:


shape = menu('Choose a shape','1: Sphere','2: Isosceles Triangular Pyramid','3: cylinder','4: Cone','5: Rectangular Prisim','-1: Exit');
if (shape<-1||shape>5||shape==0)
disp('Invalid Entry')
end
while shape~=-1
switch shape
case 1
r=input('Enter the radius of the sphere (Inches): ');
if (r<0)
disp('Invalid Entry')

end


sphereArea = surfaceAreaShapes(r);
sphereVolume = volumeShapes(r)
%calling the functions^^^^
%note: I am only showing 1 case of the switch statement and I realize the while loop is . %missing an end.


now that I called the functions, now I have to make em...(surfaceAreaShapes.m and volumeShapes.m) This is where I get super confused. I have a general idea that I'll perform an if/switch statement in order to call up the right formula that corresponds with the shape the user inputs. Just not real sure on the correct formatting of a function.

...Heres what I got for surfaceAreaShapes.m

area=surfaceAreaShapes(radius);

the parameter radius I set doesn't seem like it would make sense considering I will have other things that will need to be put in in order to determine area.

*sorry in advance its not indented properly. That bugs the hell outta me
 

Attachments

  • RRRRRRRRRRRRRRRR.PNG
    RRRRRRRRRRRRRRRR.PNG
    43.9 KB · Views: 564
Last edited:
Physics news on Phys.org
Updated attempt since class this morning


shapesFunc.m

clc
clear
shape = menu('Choose a shape','1: Sphere','2: Isosceles Triangular Pyramid','3: cylinder','4: Cone','5: Rectangular Prisim','-1: Exit');
if (shape<-1||shape>5||shape==0)
disp('Invalid Entry')
end
while shape~=-1
switch shape
case 1

r=input('Enter the radius of the sphere (Inches): ');
sphereArea = surfaceAreaShapes(r)




sphereArea=round(sphereArea*100)/100;
sphereVolume=round(sphereVolume*100)/100;
fprintf('For a radius of %g\n',r)
fprintf('Surface Area = %g square inches\n',sphereArea)
fprintf('Volume = %g square inches\n',sphereVolume)


end
end



surfaceAreaShapes.m (function)​
area=surfaceAreaShapes(radius);
global r b h l s w shape
switch shape
case 1

if (r<0)
disp('Invalid Entry')
break
end
%calculate surface area and volume
sphereArea = 4*pi*(r^2);
sphereVolume = (4/3)*pi*(r^3);
end

and here's the error statement I keep getting
Attempt to execute SCRIPT surfaceAreaShapes as a function:
C:\Users\Micheal\Documents\MATLAB\surfaceAreaShapes.m

Error in shapesFunc (line 12)
sphereArea = surfaceAreaShapes(r)
 
lolwow I am a dumbass.

might want to put Function in the function file huhh?
 
Update:

clc
clear
shape = menu('Choose a shape','1: Sphere','2: Isosceles Triangular Pyramid','3: cylinder','4: Cone','5: Rectangular Prisim','-1: Exit');
if (shape<-1||shape>5||shape==0)
disp('Invalid Entry')
end
while shape~=-1
switch shape
case 1

r=input('Enter the radius of the sphere (Inches): ');
area = surfaceAreaShapes()




sphereArea=round(sphereArea*100)/100;
sphereVolume=round(sphereVolume*100)/100;
fprintf('For a radius of %g\n',r)
fprintf('Surface Area = %g square inches\n',sphereArea)
fprintf('Volume = %g square inches\n',sphereVolume)


end
end



Function
function area=surfaceAreaShapes(radius);
global r b h l s w
shape = menu('Choose a shape','1: Sphere','2: Isosceles Triangular Pyramid','3: cylinder','4: Cone','5: Rectangular Prisim','-1: Exit');
switch shape
case 1

if (r<0)
disp('Invalid Entry')
return
end
%calculate surface area and volume
sphereArea = 4*pi*(r^2);
sphereVolume = (4/3)*pi*(r^3);
end
end


Error message: Error in surfaceAreaShapes (line 2)
global r b h l s w

Output argument "area" (and maybe others) not assigned during call to
"C:\Users\Micheal\Documents\MATLAB\surfaceAreaShapes.m>surfaceAreaShapes".

Error in shapesFunc (line 12)
area = surfaceAreaShapes()
 
Back
Top