[Index for tmp_for_tar/struct] [Return to Master Index]

untar

(tmp_for_tar/struct/untar.m)


Function Synopsis

[...] = untar(s,...)

Help text

 [foo,bar,...] = untar (s,"Foo","Bar",...)

 returns fields "Foo", "Bar", ... of structure  s.

 Inexistent fields are returned as [].

 See also : tar

 Last modified: August 2001



Listing of function file tmp_for_tar/struct/untar.m

## [foo,bar,...] = untar (s,"Foo","Bar",...)
## 
## returns fields "Foo", "Bar", ... of structure  s.
##
## Inexistent fields are returned as [].
##
## See also : tar

## Author:        Etienne Grossmann  <etienne@isr.ist.utl.pt>
## Last modified: August 2001

function [...] = untar(s,...)

  verbose = 0;

  if ! is_struct (s)
    error ("untar : s is of type '%s', not struct\n",typeinfo (s));
  end

  ## tmp = toascii(argn(2:nargin,:)) ;
  ## tmp(find(tmp==toascii("""))) = 0 ;
  str = "" ;
  nargin-- ;
				# Don't untar unnecessarily
  if nargout && nargout<nargin, nargin = nargout ; end

  while nargin--,
    t = va_arg() ;
    if struct_contains (s,t),
      str = [str,"vr_val(s.",t,");"] ;
    else
      if verbose, printf ("untar : no '%s' field\n",t); end
      str = [str,"vr_val([]);"] ;
    end
  end
  eval(str) ;
#  eval(setstr(grep([ones(nargin-1,1)*toascii("vr_val(s."),\
#  		  tmp,\
#		  ones(nargin-1,1)*toascii(");")]')')) ;


Produced by oct2html on Wed Aug 8 19:47:02 2001
Cross-Directory links are: ON