samer@4: function varargout=loadmat(file,varargin) samer@4: % loadmat - hygienic loading from mat files samer@4: % samer@4: % The point of this function is to load certain named variables samer@4: % from a Mat file without polluting the current environment with samer@4: % other objects from the Mat file or having name clashes. samer@4: % samer@4: % loadmat :: text ~'filename', text~'variable name' -> object~'something'. samer@4: % loadmat :: samer@4: % text ~'filename', samer@4: % {[N]->text} ~'list of variable names' samer@4: % -> {[N]->object} ~'list of things'. samer@4: % samer@4: % Vararg form (not well typed) samer@4: % samer@4: % [X,Y,Z,...]=loadmat(Filename,var1,var2,var,...); samer@36: % samer@36: % NB. Matlab's load can now do this. samer@4: samer@4: load(file); samer@4: for j=1:length(varargin) samer@4: var=varargin{j}; samer@4: if iscell(var), samer@4: X__=cell(1,length(var)); samer@4: for k=1:length(var) samer@4: eval(sprintf('X__{%d}=%s;',k,var{k})); samer@4: end samer@4: varargout{j}=X__; samer@4: else samer@4: eval(['varargout{j}=' var ';']); samer@4: end samer@4: end samer@4: