function a_md = updateModel(a_md, model_f, props)

% updateModel - Simulate and save new model into object.
%
% Usage:
% a_md = updateModel(a_md, model_f, props)
%
% Parameters:
%   a_md: A model_data_vcs object.
%   model_f: (optional) param_func or subclass object that holds the new
%   	     model function. If not given, existing model is simulated.
%   props: A structure with any optional properties.
%	   (passed to voltage_clamp/simModel)
%		
% Returns:
%   a_md: Updated object.
%
% Description:
%   Simulates the model to update the model_vc contained.
%
% Example:
% >> a_md = model_data_vcs(model_f, data_vc)
% >> a_md = updateModel(a_md, new_model_f))
%
% See also: model_data_vcs
%
% $Id$
%
% Author: Cengiz Gunay <cgunay@emory.edu>, 2010/10/14

props = mergeStructs(defaultValue('props', struct), get(a_md, 'props'));

a_md.model_f = defaultValue('model_f', a_md.model_f);
a_md.model_vc = simModel(a_md.data_vc, a_md.model_f, props);  % simulate model