rbmatlab 0.10.01
|
00001 function [dmodel, rmodel] = gen_models(descr, bg_descr) 00002 % function gen_models(descr, bg_descr) 00003 % generates an IDetailedModel and an IReducedModel instance from description 00004 % structures. 00005 % 00006 % Parameters: 00007 % descr: a Matlab structure of type ModelDescr. 00008 % bg_descr: a Matlab structure of type BasisGenDescr. 00009 00010 if nargin == 1 00011 bg_descr = []; 00012 end 00013 00014 fns = fieldnames(descr); 00015 rbfnsI = cellfun(@(X) length(X)>3 && isequal(X(1:3), 'RB_'), fns); 00016 rbfns = fns(rbfnsI); 00017 if isempty(bg_descr) 00018 for i = 1:length(rbfns) 00019 rbfn = rbfns{i}; 00020 bg_descr.(rbfn(4:end)) = descr.(rbfn); 00021 descr = rmfield(descr, rbfn); 00022 end 00023 00024 end 00025 if ~isfield(bg_descr, 'rb_problem_type') 00026 bg_descr.rb_problem_type = descr.rb_problem_type; 00027 end 00028 dmodel = gen_detailed_model(descr); 00029 rmodel = gen_reduced_model(dmodel, bg_descr); 00030