0001 function [x, y, z, xi, yi, zt, demoOptions] = getSampleDataset(dataId)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 switch lower(dataId)
0022 case 'seamount'
0023
0024 load seamount;
0025
0026 [xi, yi] = meshgrid(210.8:0.01:211.8, -48.5:0.01:-47.9);
0027
0028
0029 zt = [];
0030
0031 demoOptions.DistanceType = 'euclidean';
0032
0033 demoOptions.IDW.Radius = 5;
0034 demoOptions.IDW.SearchType = 'radial';
0035 demoOptions.IDW.K = 5;
0036 demoOptions.IDW.Power = 2;
0037
0038 demoOptions.RBF.RBF = 'thinplate';
0039
0040 demoOptions.RBF.linear.PolynomialDegree = 1;
0041 demoOptions.RBF.linear.RBFEpsilon = 1;
0042 demoOptions.RBF.linear.Regularization = 0;
0043
0044 demoOptions.RBF.cubic.PolynomialDegree = 1;
0045 demoOptions.RBF.cubic.RBFEpsilon = 1;
0046 demoOptions.RBF.cubic.Regularization = 0;
0047
0048 demoOptions.RBF.quintic.PolynomialDegree = 1;
0049 demoOptions.RBF.quintic.RBFEpsilon = 1;
0050 demoOptions.RBF.quintic.Regularization = 0;
0051
0052 demoOptions.RBF.multiquadric.PolynomialDegree = 1;
0053 demoOptions.RBF.multiquadric.RBFEpsilon = 1;
0054 demoOptions.RBF.multiquadric.Regularization = 0;
0055
0056 demoOptions.RBF.inversemultiquadric.PolynomialDegree = 1;
0057 demoOptions.RBF.inversemultiquadric.RBFEpsilon = 1;
0058 demoOptions.RBF.inversemultiquadric.Regularization = 0;
0059
0060 demoOptions.RBF.thinplate.PolynomialDegree = 1;
0061 demoOptions.RBF.thinplate.RBFEpsilon = 1;
0062 demoOptions.RBF.thinplate.Regularization = 0;
0063
0064 demoOptions.RBF.green.PolynomialDegree = 1;
0065 demoOptions.RBF.green.RBFEpsilon = 1;
0066 demoOptions.RBF.green.Regularization = 0;
0067
0068 demoOptions.RBF.greenwithtension.PolynomialDegree = 1;
0069 demoOptions.RBF.greenwithtension.RBFEpsilon = 0.3;
0070 demoOptions.RBF.greenwithtension.RBFEpsilonIsNormalized = true;
0071 demoOptions.RBF.greenwithtension.Regularization = 0;
0072
0073 demoOptions.RBF.greenregularizedwithtension.PolynomialDegree = 1;
0074 demoOptions.RBF.greenregularizedwithtension.RBFEpsilon = 0.3;
0075 demoOptions.RBF.greenregularizedwithtension.RBFEpsilonIsNormalized = true;
0076 demoOptions.RBF.greenregularizedwithtension.Regularization = 0;
0077
0078 demoOptions.RBF.tensionspline.PolynomialDegree = 1;
0079 demoOptions.RBF.tensionspline.RBFEpsilon = 1;
0080 demoOptions.RBF.tensionspline.Regularization = 0;
0081
0082 demoOptions.RBF.regularizedspline.PolynomialDegree = 0;
0083 demoOptions.RBF.regularizedspline.RBFEpsilon = 0.01;
0084 demoOptions.RBF.regularizedspline.Smooth = 0;
0085 demoOptions.RBF.regularizedspline.Regularization = 0;
0086
0087 demoOptions.RBF.gaussian.PolynomialDegree = 1;
0088 demoOptions.RBF.gaussian.RBFEpsilon = 0.025;
0089 demoOptions.RBF.gaussian.Smooth = 0;
0090 demoOptions.RBF.gaussian.Regularization = 0;
0091
0092 demoOptions.RBF.wendland.PolynomialDegree = 1;
0093 demoOptions.RBF.wendland.RBFEpsilon = 0.025;
0094 demoOptions.RBF.wendland.Smooth = 0;
0095 demoOptions.RBF.wendland.Regularization = 0;
0096
0097 demoOptions.Kriging.Variogram.Type = 'gaussian';
0098 demoOptions.Kriging.Variogram.NumSamples = 100;
0099 demoOptions.Kriging.Variogram.OptimNugget = true;
0100 demoOptions.Kriging.PolynomialDegree = 0;
0101 demoOptions.Kriging.Regularization = 0;
0102
0103 demoOptions.PURBF.Domain = [210.8 -48.5 1 0.6000];
0104 demoOptions.PURBF.MinPointsInCell = 10;
0105 demoOptions.PURBF.MinCellSizePercent = 0.1;
0106 demoOptions.PURBF.Overlap = 0.25;
0107
0108 demoOptions.MLS.PolynomialDegree = 2;
0109 demoOptions.MLS.RBF = 'wendland';
0110 demoOptions.MLS.RBFEpsilon = 1;
0111 demoOptions.MLS.MinSamples = 6;
0112
0113 demoOptions.Plot.XLabel = 'Longitude';
0114 demoOptions.Plot.YLabel = 'Latitude';
0115 demoOptions.Plot.ZLabel = 'Depth';
0116 demoOptions.Plot.AxisEqual = false;
0117 case 'peaks'
0118
0119 numSamples = 100;
0120 a = -3;
0121 b = 3;
0122 samples = (b-a).*rand(numSamples, 2) + a;
0123 [x, y, z] = peaks(samples(:, 1), samples(:, 2));
0124
0125 [xi, yi] = meshgrid(-3:0.1:3, -3:0.1:3);
0126
0127 [~, ~, zt] = peaks(xi, yi);
0128
0129 demoOptions.DistanceType = 'euclidean';
0130
0131 demoOptions.IDW.Radius = 5;
0132 demoOptions.IDW.SearchType = 'radial';
0133 demoOptions.IDW.K = 5;
0134 demoOptions.IDW.Power = 3;
0135
0136 demoOptions.RBF.RBF = 'thinplate';
0137
0138 demoOptions.RBF.linear.PolynomialDegree = 1;
0139 demoOptions.RBF.linear.RBFEpsilon = 1;
0140 demoOptions.RBF.linear.Regularization = 0;
0141
0142 demoOptions.RBF.cubic.PolynomialDegree = 1;
0143 demoOptions.RBF.cubic.RBFEpsilon = 1;
0144 demoOptions.RBF.cubic.Regularization = 0;
0145
0146 demoOptions.RBF.quintic.PolynomialDegree = 1;
0147 demoOptions.RBF.quintic.RBFEpsilon = 1;
0148 demoOptions.RBF.quintic.Regularization = 0;
0149
0150 demoOptions.RBF.multiquadric.PolynomialDegree = 1;
0151 demoOptions.RBF.multiquadric.RBFEpsilon = 1;
0152 demoOptions.RBF.multiquadric.Regularization = 0;
0153
0154 demoOptions.RBF.inversemultiquadric.PolynomialDegree = 1;
0155 demoOptions.RBF.inversemultiquadric.RBFEpsilon = 1;
0156 demoOptions.RBF.inversemultiquadric.Regularization = 0;
0157
0158 demoOptions.RBF.thinplate.PolynomialDegree = 1;
0159 demoOptions.RBF.thinplate.RBFEpsilon = 1;
0160 demoOptions.RBF.thinplate.Regularization = 0;
0161
0162 demoOptions.RBF.green.PolynomialDegree = 1;
0163 demoOptions.RBF.green.RBFEpsilon = 1;
0164 demoOptions.RBF.green.Regularization = 0;
0165
0166 demoOptions.RBF.greenwithtension.PolynomialDegree = 1;
0167 demoOptions.RBF.greenwithtension.RBFEpsilon = 0.3;
0168 demoOptions.RBF.greenwithtension.RBFEpsilonIsNormalized = true;
0169 demoOptions.RBF.greenwithtension.Regularization = 0;
0170
0171 demoOptions.RBF.greenregularizedwithtension.PolynomialDegree = 1;
0172 demoOptions.RBF.greenregularizedwithtension.RBFEpsilon = 0.3;
0173 demoOptions.RBF.greenregularizedwithtension.RBFEpsilonIsNormalized = true;
0174 demoOptions.RBF.greenregularizedwithtension.Regularization = 0;
0175
0176 demoOptions.RBF.tensionspline.PolynomialDegree = 0;
0177 demoOptions.RBF.tensionspline.RBFEpsilon = 0.1;
0178 demoOptions.RBF.tensionspline.Regularization = 0;
0179
0180 demoOptions.RBF.regularizedspline.PolynomialDegree = 1;
0181 demoOptions.RBF.regularizedspline.RBFEpsilon = 1;
0182 demoOptions.RBF.regularizedspline.Regularization = 0;
0183
0184 demoOptions.RBF.gaussian.PolynomialDegree = 1;
0185 demoOptions.RBF.gaussian.RBFEpsilon = 1;
0186 demoOptions.RBF.gaussian.Regularization = 0;
0187
0188 demoOptions.RBF.wendland.PolynomialDegree = 1;
0189 demoOptions.RBF.wendland.RBFEpsilon = 2;
0190 demoOptions.RBF.wendland.Regularization = 0;
0191
0192 demoOptions.Kriging.Variogram.Type = 'gaussian';
0193 demoOptions.Kriging.Variogram.NumSamples = 100;
0194 demoOptions.Kriging.Variogram.OptimNugget = true;
0195 demoOptions.Kriging.PolynomialDegree = 0;
0196 demoOptions.Kriging.Regularization = 0;
0197
0198 demoOptions.PURBF.Domain = [-3 -3 6 6];
0199 demoOptions.PURBF.MinPointsInCell = 100;
0200 demoOptions.PURBF.MinCellSizePercent = 0.1;
0201 demoOptions.PURBF.Overlap = 0.25;
0202
0203 demoOptions.MLS.PolynomialDegree = 2;
0204 demoOptions.MLS.RBF = 'wendland';
0205 demoOptions.MLS.RBFEpsilon = 3;
0206 demoOptions.MLS.MinSamples = 6;
0207
0208 demoOptions.Plot.XLabel = 'x';
0209 demoOptions.Plot.YLabel = 'y';
0210 demoOptions.Plot.ZLabel = 'z';
0211 demoOptions.Plot.AxisEqual = false;
0212 case 'franke'
0213
0214 addpath('./sample_functions');
0215 samples = rand(100, 2);
0216 x = samples(:, 1);
0217 y = samples(:, 2);
0218 z = franke(samples(:, 1), samples(:, 2));
0219
0220 [xi, yi] = meshgrid(0:0.025:1, 0:0.025:1);
0221
0222 zt = franke(xi, yi);
0223
0224 demoOptions.DistanceType = 'euclidean';
0225
0226 demoOptions.IDW.Radius = 5;
0227 demoOptions.IDW.SearchType = 'radial';
0228 demoOptions.IDW.K = 5;
0229 demoOptions.IDW.Power = 2;
0230
0231 demoOptions.RBF.RBF = 'thinplate';
0232
0233 demoOptions.RBF.linear.PolynomialDegree = 1;
0234 demoOptions.RBF.linear.RBFEpsilon = 1;
0235 demoOptions.RBF.linear.Regularization = 0;
0236
0237 demoOptions.RBF.cubic.PolynomialDegree = 1;
0238 demoOptions.RBF.cubic.RBFEpsilon = 1;
0239 demoOptions.RBF.cubic.Regularization = 0;
0240
0241 demoOptions.RBF.quintic.PolynomialDegree = 1;
0242 demoOptions.RBF.quintic.RBFEpsilon = 1;
0243 demoOptions.RBF.quintic.Regularization = 0;
0244
0245 demoOptions.RBF.multiquadric.PolynomialDegree = 1;
0246 demoOptions.RBF.multiquadric.RBFEpsilon = 1;
0247 demoOptions.RBF.multiquadric.Regularization = 0;
0248
0249 demoOptions.RBF.inversemultiquadric.PolynomialDegree = 1;
0250 demoOptions.RBF.inversemultiquadric.RBFEpsilon = 1;
0251 demoOptions.RBF.inversemultiquadric.Regularization = 0;
0252
0253 demoOptions.RBF.thinplate.PolynomialDegree = 1;
0254 demoOptions.RBF.thinplate.RBFEpsilon = 1;
0255 demoOptions.RBF.thinplate.Regularization = 0;
0256
0257 demoOptions.RBF.green.PolynomialDegree = 1;
0258 demoOptions.RBF.green.RBFEpsilon = 1;
0259 demoOptions.RBF.green.Regularization = 0;
0260
0261 demoOptions.RBF.greenwithtension.PolynomialDegree = 1;
0262 demoOptions.RBF.greenwithtension.RBFEpsilon = 0.3;
0263 demoOptions.RBF.greenwithtension.RBFEpsilonIsNormalized = true;
0264 demoOptions.RBF.greenwithtension.Regularization = 0;
0265
0266 demoOptions.RBF.greenregularizedwithtension.PolynomialDegree = 1;
0267 demoOptions.RBF.greenregularizedwithtension.RBFEpsilon = 0.3;
0268 demoOptions.RBF.greenregularizedwithtension.RBFEpsilonIsNormalized = true;
0269 demoOptions.RBF.greenregularizedwithtension.Regularization = 0;
0270
0271 demoOptions.RBF.tensionspline.PolynomialDegree = 1;
0272 demoOptions.RBF.tensionspline.RBFEpsilon = 1;
0273 demoOptions.RBF.tensionspline.Regularization = 0;
0274
0275 demoOptions.RBF.regularizedspline.PolynomialDegree = 0;
0276 demoOptions.RBF.regularizedspline.RBFEpsilon = 1;
0277 demoOptions.RBF.regularizedspline.Regularization = 0;
0278
0279 demoOptions.RBF.gaussian.PolynomialDegree = 1;
0280 demoOptions.RBF.gaussian.RBFEpsilon = 0.1;
0281 demoOptions.RBF.gaussian.Smooth = 0;
0282 demoOptions.RBF.gaussian.Regularization = 0;
0283
0284 demoOptions.RBF.wendland.PolynomialDegree = 1;
0285 demoOptions.RBF.wendland.RBFEpsilon = 1;
0286 demoOptions.RBF.wendland.Regularization = 0;
0287
0288 demoOptions.Kriging.Variogram.Type = 'gaussian';
0289 demoOptions.Kriging.Variogram.NumSamples = 100;
0290 demoOptions.Kriging.Variogram.OptimNugget = true;
0291 demoOptions.Kriging.PolynomialDegree = 0;
0292 demoOptions.Kriging.Regularization = 0;
0293
0294 demoOptions.PURBF.Domain = [0 0 1 1];
0295 demoOptions.PURBF.MinPointsInCell = 25;
0296 demoOptions.PURBF.MinCellSizePercent = 0.1;
0297 demoOptions.PURBF.Overlap = 0.25;
0298
0299 demoOptions.MLS.PolynomialDegree = 2;
0300 demoOptions.MLS.RBF = 'wendland';
0301 demoOptions.MLS.RBFEpsilon = 1;
0302 demoOptions.MLS.MinSamples = 6;
0303
0304 demoOptions.Plot.XLabel = 'x';
0305 demoOptions.Plot.YLabel = 'y';
0306 demoOptions.Plot.ZLabel = 'z';
0307 demoOptions.Plot.AxisEqual = false;
0308 case 'flower'
0309
0310
0311
0312
0313
0314
0315
0316
0317
0318
0319
0320
0321
0322
0323
0324
0325
0326
0327
0328
0329
0330
0331
0332 addpath('./sample_functions');
0333 numSamples = 400;
0334 a = -1;
0335 b = 1;
0336 samples = (b-a).*rand(numSamples, 2) + a;
0337 x = samples(:, 1);
0338 y = samples(:, 2);
0339 z = flower(samples(:, 1), samples(:, 2));
0340
0341
0342 [xi, yi] = meshgrid(-1:0.025:1, -1:0.025:1);
0343
0344 zt = flower(xi, yi);
0345
0346
0347 demoOptions.DistanceType = 'euclidean';
0348
0349 demoOptions.IDW.Radius = 5;
0350 demoOptions.IDW.SearchType = 'radial';
0351 demoOptions.IDW.K = 5;
0352 demoOptions.IDW.Power = 2;
0353
0354 demoOptions.RBF.RBF = 'thinplate';
0355
0356 demoOptions.RBF.linear.PolynomialDegree = 1;
0357 demoOptions.RBF.linear.RBFEpsilon = 1;
0358 demoOptions.RBF.linear.Regularization = 0;
0359
0360 demoOptions.RBF.cubic.PolynomialDegree = 1;
0361 demoOptions.RBF.cubic.RBFEpsilon = 1;
0362 demoOptions.RBF.cubic.Regularization = 0;
0363
0364 demoOptions.RBF.quintic.PolynomialDegree = 1;
0365 demoOptions.RBF.quintic.RBFEpsilon = 1;
0366 demoOptions.RBF.quintic.Regularization = 0;
0367
0368 demoOptions.RBF.multiquadric.PolynomialDegree = 1;
0369 demoOptions.RBF.multiquadric.RBFEpsilon = 1;
0370 demoOptions.RBF.multiquadric.Regularization = 0;
0371
0372 demoOptions.RBF.inversemultiquadric.PolynomialDegree = 1;
0373 demoOptions.RBF.inversemultiquadric.RBFEpsilon = 1;
0374 demoOptions.RBF.inversemultiquadric.Regularization = 0;
0375
0376 demoOptions.RBF.thinplate.PolynomialDegree = 1;
0377 demoOptions.RBF.thinplate.RBFEpsilon = 1;
0378 demoOptions.RBF.thinplate.Regularization = 0;
0379
0380 demoOptions.RBF.green.PolynomialDegree = 1;
0381 demoOptions.RBF.green.RBFEpsilon = 1;
0382 demoOptions.RBF.green.Regularization = 0;
0383
0384 demoOptions.RBF.greenwithtension.PolynomialDegree = 1;
0385 demoOptions.RBF.greenwithtension.RBFEpsilon = 0.3;
0386 demoOptions.RBF.greenwithtension.RBFEpsilonIsNormalized = true;
0387 demoOptions.RBF.greenwithtension.Regularization = 0;
0388
0389 demoOptions.RBF.greenregularizedwithtension.PolynomialDegree = 1;
0390 demoOptions.RBF.greenregularizedwithtension.RBFEpsilon = 0.3;
0391 demoOptions.RBF.greenregularizedwithtension.RBFEpsilonIsNormalized = true;
0392 demoOptions.RBF.greenregularizedwithtension.Regularization = 0;
0393
0394 demoOptions.RBF.tensionspline.PolynomialDegree = 1;
0395 demoOptions.RBF.tensionspline.RBFEpsilon = 1;
0396 demoOptions.RBF.tensionspline.Regularization = 0;
0397
0398 demoOptions.RBF.regularizedspline.PolynomialDegree = 0;
0399 demoOptions.RBF.regularizedspline.RBFEpsilon = 1;
0400 demoOptions.RBF.regularizedspline.Regularization = 0;
0401
0402 demoOptions.RBF.gaussian.PolynomialDegree = 1;
0403 demoOptions.RBF.gaussian.RBFEpsilon = 0.01;
0404 demoOptions.RBF.gaussian.Smooth = 0;
0405 demoOptions.RBF.gaussian.Regularization = 0;
0406
0407 demoOptions.RBF.wendland.PolynomialDegree = 1;
0408 demoOptions.RBF.wendland.RBFEpsilon = 1;
0409 demoOptions.RBF.wendland.Regularization = 0;
0410
0411 demoOptions.Kriging.Variogram.Type = 'gaussian';
0412 demoOptions.Kriging.Variogram.NumSamples = 100;
0413 demoOptions.Kriging.Variogram.OptimNugget = true;
0414 demoOptions.Kriging.PolynomialDegree = 0;
0415 demoOptions.Kriging.Regularization = 0;
0416
0417 demoOptions.PURBF.Domain = [-1 -1 2 2];
0418 demoOptions.PURBF.MinPointsInCell = 25;
0419 demoOptions.PURBF.MinCellSizePercent = 0.1;
0420 demoOptions.PURBF.Overlap = 0.25;
0421
0422 demoOptions.MLS.PolynomialDegree = 2;
0423 demoOptions.MLS.RBF = 'wendland';
0424 demoOptions.MLS.RBFEpsilon = 1;
0425 demoOptions.MLS.MinSamples = 6;
0426
0427 demoOptions.Plot.XLabel = 'x';
0428 demoOptions.Plot.YLabel = 'y';
0429 demoOptions.Plot.ZLabel = 'z';
0430 demoOptions.Plot.AxisEqual = false;
0431 otherwise
0432 error('Unknown sample dataset');
0433 end
0434
0435 end