mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-12-23 17:41:41 +00:00
[matlab/en] Added simple class example to Matlab
This commit is contained in:
parent
abd7444f9e
commit
79cee63879
@ -3,6 +3,7 @@ language: Matlab
|
|||||||
contributors:
|
contributors:
|
||||||
- ["mendozao", "http://github.com/mendozao"]
|
- ["mendozao", "http://github.com/mendozao"]
|
||||||
- ["jamesscottbrown", "http://jamesscottbrown.com"]
|
- ["jamesscottbrown", "http://jamesscottbrown.com"]
|
||||||
|
- ["Colton Kohnke", "http://github.com/voltnor"]
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@ -464,6 +465,59 @@ mean % mean value
|
|||||||
std % standard deviation
|
std % standard deviation
|
||||||
perms(x) % list all permutations of elements of x
|
perms(x) % list all permutations of elements of x
|
||||||
|
|
||||||
|
|
||||||
|
% Classes
|
||||||
|
% Matlab can support object-oriented programming.
|
||||||
|
% Classes must be put in a file of the class name with a .m extension.
|
||||||
|
% To begin, we create a simple class to store GPS waypoints.
|
||||||
|
% Begin WaypointClass.m
|
||||||
|
classdef WaypointClass % The class name.
|
||||||
|
properties % The properties of the class behave like Structures
|
||||||
|
latitude
|
||||||
|
longitude
|
||||||
|
end
|
||||||
|
methods
|
||||||
|
% This method that has the same name of the class is the constructor.
|
||||||
|
function obj = WaypointClass(lat, lon)
|
||||||
|
obj.latitude = lat;
|
||||||
|
obj.longitude = lon;
|
||||||
|
end
|
||||||
|
|
||||||
|
% Other functions that use the Waypoint object
|
||||||
|
function r = multiplyLatBy(obj, n)
|
||||||
|
r = n*[obj.latitude];
|
||||||
|
end
|
||||||
|
|
||||||
|
% If we want to add two Waypoint objects together without calling
|
||||||
|
% a special function we can overload Matlab's arithmetic like so:
|
||||||
|
function r = plus(o1,o2)
|
||||||
|
r = WaypointClass([o1.latitude] +[o2.latitude], ...
|
||||||
|
[o1.longitude]+[o2.longitude]);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
% End WaypointClass.m
|
||||||
|
|
||||||
|
% We can create an object of the class using the constructor
|
||||||
|
a = WaypointClass(45.0, 45.0)
|
||||||
|
|
||||||
|
% Class properties behave exactly like Matlab Structures.
|
||||||
|
a.latitude = 70.0
|
||||||
|
a.longitude = 25.0
|
||||||
|
|
||||||
|
% Methods can be called in the same way as functions
|
||||||
|
ans = multiplyLatBy(a,3)
|
||||||
|
|
||||||
|
% The method can also be called using dot notation. In this case, the object
|
||||||
|
% does not need to be passed to the method.
|
||||||
|
ans = a.multiplyLatBy(a,1/3)
|
||||||
|
|
||||||
|
% Matlab functions can be overloaded to handle objects.
|
||||||
|
% In the method above, we have overloaded how Matlab handles
|
||||||
|
% the addition of two Waypoint objects.
|
||||||
|
b = WaypointClass(15.0, 32.0)
|
||||||
|
c = a + b
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## More on Matlab
|
## More on Matlab
|
||||||
|
Loading…
Reference in New Issue
Block a user