annotate +grid/equidistant.m @ 154:c7b2f645101f feature/grids

Added classes and functions for Cartesian and equidistant grids.
author Jonatan Werpers <jonatan@werpers.com>
date Thu, 18 Feb 2016 16:46:02 +0100
parents
children c3378418d49a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
154
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 % Creates a cartesian grid of dimension length(m).
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2 % over the doman xlim, ylim, ...
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3 % Examples:
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4 % g = grid.equidistant([mx, my], xlim, ylim)
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5 % g = grid.equidistant([10, 15], {0,1}, {0,2})
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6 function g = equidistant(m, varargin)
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 if length(m) ~= length(varargin)
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8 error('grid:equidistant:NonMatchingParameters','The number of provided dimensions do not match.')
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9 end
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
10
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11 for i = 1:length(m)
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12 if ~iscell(varargin{i}) || numel(varargin{i}) ~= 2
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
13 error('grid:equidistant:InvalidLimits','The limits should be cell arrays with 2 elements.');
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
14 end
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
16 if varargin{i}{1} > varargin{i}{2}
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17 error('grid:equidistant:InvalidLimits','The elements of the limit must be increasing.');
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
18 end
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19 end
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
21 X = {};
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
22 for i = 1:length(m)
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
23 X{i} = util.get_grid(varargin{i}{:},m(i));
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
24 end
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
26 g = grid.Cartesian(X{:});
c7b2f645101f Added classes and functions for Cartesian and equidistant grids.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
27 end