MATLAB function creation and application

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
3 replies · 2K views
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: 597
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()