ECG-Kit 1.0
(2,402 bytes)
%FILE2DSET Load and convert dataset from disk file
%
% A = FILE2DSET(NAME,M,N)
%
% The function was previously named PRDATASET. It has to be renamed for the
% renaming of DATASET into PRDATASET in PRTOOLS version 5. It may also be
% called by A = PRDATASET(NAME,M,N), both, in version 4 as well as in
% version 5.
%
% The dataset given in NAME is loaded from a .mat file and converted
% to the current PRTools definition. Objects and features requested
% by the index vectors M and N are returned.
%
% See PRDATA for loading arbitrary data into a PRTools dataset.
% See PRDATASETS for an overview of datasets.
% Copyright: R.P.W. Duin, duin@ph.tn.tudelft.nl
% Faculty of Applied Sciences, Delft University of Technology
% P.O. Box 5046, 2600 GA Delft, The Netherlands
% $Id: prdataset.m,v 1.3 2009/12/21 10:35:12 duin Exp $
% function a = prdataset(name,M,N,no_message)
function a = file2dset(name,varargin)
persistent FIRST;
if isempty(FIRST), FIRST = 1; end
[M,N,no_message] = setdefaults(varargin,[],[],0);
if exist([name '.mat']) ~= 2
error([newline '---- Dataset ''' name ''' not available ----'])
end
s = warning;
warning off
b = load(name);
warning(s);
% Try to find out what data we actually loaded:
names = fieldnames(b);
eval(['a = b.' names{1} ';']);
if ~isdataset(a) & ndims(a) > 2
% We loaded an image?
a = im2feat(a);
prwarning(2,'Assumed that a feature image is loaded')
else
a = prdataset(a);
end
[m,k] = size(a);
% Maybe a subset of the features is requested:
if ~isempty(N)
if min(size(N)) ~= 1
error([newline 'Feature indices should be stored in vector'])
end
if max(N) > k
error([newline 'Dataset has not the requested features'])
end
a = a(:,N);
end
% Maybe a subset of the objects are requested:
if ~isempty(M)
if min(size(M)) ~= 1
error([newline 'Object indices should be stored in vector'])
end
if max(M) > m
error([newline 'Dataset has not the requested objects'])
end
a = a(M,:);
end
if FIRST & ~no_message
disp(' ')
disp('*** You are using one of the datasets distibuted by PRTools. Most of them')
disp('*** are publicly available on the Internet and converted to the PRTools')
disp('*** format. See the Contents of the datasets directory (HELP PRDATASETS)')
disp('*** or the load routine of the specific dataset to retrieve its source.')
disp(' ')
FIRST = 0;
end
return