# MATLAB function creation and application

*see attachment*

## 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: Im 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

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

• 58.6 KB Views: 410
Last edited:

Related Engineering and Comp Sci Homework Help 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('Surface Area = %g square inches\n',sphereArea)
fprintf('Volume = %g square inches\n',sphereVolume)

end
end

surfaceAreaShapes.m (function)​
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 heres 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 Im 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('Surface Area = %g square inches\n',sphereArea)
fprintf('Volume = %g square inches\n',sphereVolume)

end
end

Function
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()