Functions: ans at end...where it is coming from?
Mostrar comentarios más antiguos
In entering the following function:
function [ft,in] = MetricToImperial(m)
% Input: m = measurement in metres
% Outputs: ft = number of feet
% in = number of inches
m = 2;
% Calculate the total number of cms
cm = m * 100;
% Calculate the total number of inches
totalInches = cm/2.54;
% Calculate the total number of feet, ignoring the value after decimal
ft = floor(totalInches/12)
% Find the remaining number of inches
in = totalInches - 12*ft
return
When running the function matlab returns:
EDU>> MetricToImperial
ft =
6
in =
6.7402
ans =
6
Now i was wondering why I get the ans = 6 at the end. All i want is the ft and in answer. I have tested it as a script and it works that way so I know it must be something to do with my inputs and outputs.
I have also noticed if I leave line 1 as
function [] = MetricToImperial(m)
it gives me the result I want - so something is wrong as I'm saying there's no output variables but there is.
Is this the correct way to create a function? I am very new to this so any help is appreciated.
Respuesta aceptada
Más respuestas (1)
Honglei Chen
el 27 de Jul. de 2013
The first two answer you get is due to the fact you didn't end the corresponding lines in your function with semi-colon. The ans is populated because your function has an output but the output is not specified when you invoke the function. You should add semi-colon behind both lines and invoke the function as
[ft,in] = MetricToImperial
Finally your input, m, does not seem to be used at all.
3 comentarios
Anna
el 27 de Jul. de 2013
Walter Roberson
el 27 de Jul. de 2013
You might intend it as your input, but you are assigning it in the function, making it useless to pass it as your input. You probably should not be assigning it in your function.
Anna
el 27 de Jul. de 2013
Categorías
Más información sobre Whos en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!