Ignore:
Timestamp:
04/20/10 14:56:38 (15 years ago)
Author:
jschierm
Message:

QMU with Dakota: updated all Dakota variable/response class definitions to allow construction of multiple simultaneous instances.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/m/classes/objective_function.m

    r3095 r3577  
    5151                        of=varargin{1};
    5252                    else
    53                         of.descriptor=varargin{1};
     53                        asizec=num2cell(array_size(varargin{1:min(nargin,4)}));
     54                        of(asizec{:})=objective_function;
     55                        clear asizec
     56                   
     57                        if ischar(varargin{1})
     58                            varargin{1}=cellstr(varargin{1});
     59                        end
     60                        for i=1:numel(of)
     61                            if (numel(varargin{1}) > 1)
     62                                of(i).descriptor=varargin{1}{i};
     63                            else
     64                                of(i).descriptor=[char(varargin{1}) string_dim(of,i)];
     65                            end
     66                        end
    5467
    5568                        if (nargin >= 2)
    56                             of.scale_type=varargin{2};
     69                            if ischar(varargin{2})
     70                                varargin{2}=cellstr(varargin{2});
     71                            end
     72                            for i=1:numel(of)
     73                                if (numel(varargin{2}) > 1)
     74                                    of(i).scale_type=varargin{2}{i};
     75                                else
     76                                    of(i).scale_type=char(varargin{2});
     77                                end
     78                            end
    5779                            if (nargin >= 3)
    58                                 of.scale     =varargin{3};
     80                                for i=1:numel(of)
     81                                    if (numel(varargin{3}) > 1)
     82                                        of(i).scale     =varargin{3}(i);
     83                                    else
     84                                        of(i).scale     =varargin{3};
     85                                    end
     86                                end
    5987                                if (nargin >= 4)
    60                                     of.weight    =varargin{4};
     88                                    for i=1:numel(of)
     89                                        if (numel(varargin{4}) > 1)
     90                                            of(i).weight    =varargin{4}(i);
     91                                        else
     92                                            of(i).weight    =varargin{4};
     93                                        end
     94                                    end
    6195
    6296                                    if (nargin > 4)
Note: See TracChangeset for help on using the changeset viewer.