Software tutorial/Scripts and functions
Scripts
- Scripts are a series of commands, saved in a .m or .py file.
- When you run a script, it is as if you typed each line, in sequence, into MATLAB or Python.
- It is good programming practice, and is required for this course, that all all your programs should run from a script.
- It prevents you retyping in the commands if you need to change a variable's value
- You must use scripts if you need to debug your program
- Is helpful when you come back weeks or months later to figure out what you did (like revising for exams)
- Can be shared with your colleagues for collaborative development.
- All variables resulting from calculations performed in the script are available to you in the command window after the script is finished
A simple example of a script:
MATLAB: example.m | Python: example.py |
---|---|
rho = 1200; % [kg/m^3]
Cp = 4180; % [J/(kg.K)]
f = 0.1; % [m^3/s]
T = 341; % [K]
energy = rho * Cp * f * T; % [J]
disp(['The energy is = ', num2str(energy/1E6), ' MJ/s'])
Now at the MATLAB command prompt you can type: >> example
The energy is = 171.0456 MJ/s
Note: you do not type the >> characters - they are used in these tutorials to indicate that you should type the rest of the line in the MATLAB command window. A simpler way to run your script is to click the "Play" button, or use the shortcut key displayed under the "Debug" menu: usually F7 on Windows computers. |
rho = 1200 # [kg/m^3]
Cp = 4180 # [J/(kg.K)]
f = 0.1 # [m^3/s]
T = 341 # [K]
energy = rho * Cp * f * T # [J]
print('The energy is = %f MJ/s' % (energy/1E6))
From the Python command prompt: >>> execfile('example.py')
The energy is = 171.045600 MJ/s
Note: you do not type the >>> characters - they are used in these tutorials to indicate that you should type the rest of the line in the Python command window. A simpler way to run your script is to click the "Play" button in Python(x,y), or use the F9 shortcut key. |
Functions
What if we needed to calculate the energy in at a different inlet temperature, T and at a different flow rate, f? We could edit our script and change the values of T and f and rerun it.
A better alternative is to write a function, which will accept these values and return the energy. A simple rule to remember: whenever you write code that is similar to code you have previously written - you should stop - and rather write a function.
MATLAB: energy_rate.m | Python: energy_rate.py |
---|---|
function energy = energy_rate(f, T)
% Returns the energy rate into/out of the system.
% Units assumed: f = [m^3/s], T = [K].
rho = 1200; % [kg/m^3]
Cp = 4180; % [J/(kg.K)]
energy = rho * Cp * f * T; % [J]
|
def energy_rate(f, T):
"""
Returns the energy rate into/out of the system.
Units assumed: f = [m^3/s], T = [K].
"""
rho = 1200 # [kg/m^3]
Cp = 4180 # [J/(kg.K)]
return rho * Cp * f * T # [J]
|
- The output variable here is energy and the input variables are f and T
- The name of the function is energy_rate
- In MATLAB only: the function must be in a .m file with the same name as the function.
- In MATLAB only: file names must not have any spaces and cannot use - (minus) or other mathematical symbols in their name.
Combining functions and scripts: building up your code
D = distance(2.0,3.5)
- The function will calculate the distance between (2.0,3.5) and the origin and put the result in the variable D
- Note that the function allows us to perform the distance calculation without previously assigning values to the variables x and y in the workspace
- A function can assign multiple output variables (consult MATLAB help to find out how)
- Functions can call other functions