blob: 74a644507a429c80652410c5d9379c583daa4571 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
function K = tabular_kernel(sz, table)
% TABULAR_KERNEL Make a table-based local kernel (discrete potential)
% K = tabular_kernel(sz, table)
%
% sz(i) is the number of values the i'th member of this kernel can have
% table is an optional array of size sz[1] x sz[2] x... [default: random]
if nargin==0
% This occurs if we are trying to load an object from a file.
K = init_fields;
K = class(K, 'tabular_kernel');
return;
elseif isa(sz, 'tabular_kernel')
% This might occur if we are copying an object.
K = sz;
return;
end
K = init_fields;
if nargin < 2, table = myrand(sz); end
K.sz = sz;
K.table = table;
K = class(K, 'tabular_kernel');
%%%%%%%
function K = init_fields()
% This ensures we define the fields in the same order
% no matter whether we load an object from a file,
% or create it from scratch. (Matlab requires this.)
K.sz = [];
K.table = [];
|