Home > classes > @param > subsref.m

subsref

PURPOSE ^

SUBSREF Define field name indexing for parameter objects.

SYNOPSIS ^

function B = subsref(A, S)

DESCRIPTION ^

 SUBSREF Define field name indexing for parameter objects.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 DESCRIPTION: SUBSREF Define field name indexing for parameter objects.

 EXAMPLES:    All possible accesses are possible.

 VERSION:     $Id: subsref.m,v 1.5 2007/08/01 13:55:52 ingo Exp $

 HISTORY:     31-01-07 M Hewitson
                 Creation

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function B = subsref(A, S)
0002 % SUBSREF Define field name indexing for parameter objects.
0003 %
0004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0005 %
0006 % DESCRIPTION: SUBSREF Define field name indexing for parameter objects.
0007 %
0008 % EXAMPLES:    All possible accesses are possible.
0009 %
0010 % VERSION:     $Id: subsref.m,v 1.5 2007/08/01 13:55:52 ingo Exp $
0011 %
0012 % HISTORY:     31-01-07 M Hewitson
0013 %                 Creation
0014 %
0015 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0016 B = builtin('subsref', A, S);
0017 
0018 % function b = subsref(p, index)
0019 % % SUBSREF Define field name indexing for param objects.
0020 % %
0021 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0022 % %
0023 % % DESCRIPTION: SUBSREF Define field name indexing for param objects.
0024 % %
0025 % % EXAMPLES:
0026 % %
0027 % %  nesting level == 1
0028 % %    >>  p       = p_vector(2);
0029 % %    >>  key     = p.key
0030 % %    >>  val     = p.val
0031 % %    >>  version = p.version
0032 % %
0033 % %  nesting level == 2
0034 % %    >>  p   = p_vector(1).val
0035 % %    >>  val = p.val(1)
0036 % %    >>  val = p.val{1}
0037 % %
0038 % % VERSION: $Id: subsref.m,v 1.5 2007/08/01 13:55:52 ingo Exp $
0039 % %
0040 % % HISTORY: 31-01-07 M Hewitson
0041 % %             Creation
0042 % %
0043 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0044 %
0045 % b = [];
0046 %
0047 % switch length(index)
0048 %   % INFO: p(1)
0049 %   %       p{1}
0050 %   %       p.key
0051 %   %       p.val
0052 %   %       p.version
0053 %   case 1   % p(1) or p.key
0054 %     switch index.type
0055 %       case '()'
0056 %         idx = index.subs{1};
0057 %         b = p(idx);
0058 %       case '{}'
0059 %         idx = index.subs{1};
0060 %         b = p{idx};
0061 %       case '.'
0062 %         switch index.subs
0063 %           case 'key'
0064 %             b = p.key;
0065 %           case 'val'
0066 %             b = p.val;
0067 %           case 'version'
0068 %             b = p.version;
0069 %           otherwise
0070 %             error('### unknown field for param object.');
0071 %         end
0072 %       otherwise
0073 %         error('### unknown indexing method for param objects.');
0074 %     end
0075 %   case 2 % p(1).key
0076 %
0077 %     % INFO: p.val(1)
0078 %     %       p.val{2}
0079 %     if index(1).type == '.'
0080 %       fieldName = index(1).subs;
0081 %
0082 %       if length(p) == 1
0083 %         eval(sprintf('b = subsref (p.%s, index(2));',fieldName))
0084 %       else
0085 %         error(['### output is not defined because the '...
0086 %                'parameter is a vector or matrix.']);
0087 %       end
0088 %
0089 %     % INFO: p(1).val
0090 %     elseif index(1).type == '()'
0091 %       idx = index(1).subs{1};
0092 %       switch index(2).subs
0093 %         case 'key'
0094 %           b = p(idx).key;
0095 %         case 'val'
0096 %           b = p(idx).val;
0097 %         case 'version'
0098 %           b = p(idx).version;
0099 %         otherwise
0100 %           error('### unknown field for param object.');
0101 %       end
0102 %     else
0103 %       error('### unknown indexing method for parameter objects.');
0104 %     end
0105 %
0106 %   otherwise
0107 %     error('### unknown indexing method for parameter objects.');
0108 % end
0109 %
0110 % % END
0111 %

Generated on Mon 03-Sep-2007 12:12:34 by m2html © 2003