source: prdatasets/loadmatfile.m @ 134

Last change on this file since 134 was 134, checked in by bduin, 5 years ago
File size: 1.3 KB
RevLine 
[134]1%LOADMATFILE  Load matfile for this mfile, if it exist
2%
3%    A = LOADMATFILE(MATFILE)
4%
5% Loads the dataset stored in the matfile. Default matfile is the name of
6% the calling routine.
7%
8%    [A1,A2,..] = LOADMATFILE(MATFILE,NARGOUTCOUNT)
9%
10% In case multiple matfiles are stored for the calling routine, it is
11% assumed they all contain a dataset: train set, test set, validation set,
12% etcetera. In case NARGOUTCOUNT (NARGOUT of the calling routine) equals 1,
13% the combined dataset is loaded and returned in A (A1).
14% In case NARGOUTCOUNT > 1, the subsets are are loaded into A1, A2, ...
15%
16% SEE ALSO
17% DATASETS, PRDATASETS, SAVEMATFILE, PR_DOWNLOAD_UCI
18
19function varargout = loadmatfile(name)
20
21varargout = cell(1,nargout);
22
23if nargin < 1 || isempty(name)
24  name = callername;
25end
26matfile = fullfile(fullfile(fileparts(which(name)),'data'),name);
27
28if nargout == 1
29  varargout{1} = loadmatf([matfile '.mat']);
30else
31  for i=1:nargout
32    varargout{i} = loadmatf([matfile '_' num2str(i) '.mat']);
33  end
34end
35
36return
37 
38function a = loadmatf(matfile)
39  if exist(matfile,'file') == 2
40    s = load(matfile);
41    fields = fieldnames(s);
42    a = getfield(s,fields{1});
43  else
44    a = [];
45  end
46return
47
48function name = callername
49  [ss,dummy] = dbstack;
50  if length(ss) < 3
51    name = [];
52  else
53    name = ss(3).name;
54  end
55return
Note: See TracBrowser for help on using the repository browser.