⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subsasgn.m

📁 RBF网络逼近、RBF-建模、RBF网络训练与测试程序
💻 M
📖 第 1 页 / 共 5 页
字号:
  return
end

% Change learn function
net.layerWeights{i,j}.learn = learn;

% ===========================================================

function [net,err] = setLayerWeightLearnFcn(net,i,j,learnFcn)

% Check value
err = '';
if ~isstr(learnFcn)
  err = sprintf('"layerWeights{%g,%g}.learnFcn" must be '''' or the name of a weight learning function.',i,j);
  return
end
if length(learnFcn) & ~exist(learnFcn)
  err = sprintf('"layerWeights{%g,%g}.learnFcn" cannot be set to non-existing function "%s".',i,j,learnFcn);
  return
end

% Change learn function
net.layerWeights{i,j}.learnFcn = learnFcn;

% Default learn parameters
if length(learnFcn)
  net.layerWeights{i,j}.learnParam = feval(learnFcn,'pdefaults');
else
  net.layerWeights{i,j}.learnParam = [];
end

% ===========================================================

function [net,err] = setLayerWeightLearnParam(net,i,j,learnParam)

% Check value
err = '';

% Change learn parameters
net.layerWeights{i,j}.learnParam = learnParam;

% ===========================================================

function [net,err] = setLayerWeightWeightFcn(net,i,j,weightFcn)

% Check value
err = '';
if ~isstr(weightFcn)
  err = sprintf('"layerWeights{%g,%g}.weightFcn" must be the name of a weight function.',i,j);
  return
end
if ~exist(weightFcn)
  err = sprintf('"layerWeights{%g,%g}.weightFcn" cannot be set to non-existing function "%s".',i,j,weightFcn);
  return
end

% Change net input function
net.layerWeights{i,j}.weightFcn = weightFcn;

% ===========================================================
%                          FUNCTIONS AND PARAMETERS
% ===========================================================

function [net,err] = setAdaptFcn(net,adaptFcn)

% Check value
err = '';
if ~isstr(adaptFcn)
  err = sprintf('"adaptFcn" must be '''' or the name of a network adapt function.');
  return
end
if length(adaptFcn) & ~exist(adaptFcn)
  err = sprintf('"adaptFcn" cannot be set to non-existing function "%s".',adaptFcn);
  return
end

% Change function
net.adaptFcn = adaptFcn;

% Default parameters
if length(adaptFcn)
  net.adaptParam = feval(adaptFcn,'pdefaults');
else
  net.adaptParam = [];
end

% ===========================================================

function [net,err] = setAdaptParam(net,adaptParam)

% Check value
err = '';

% Change paramters
net.adaptParam = adaptParam;

% ===========================================================

function [net,err] = setInitFcn(net,initFcn)

% Check value
err = '';
if ~isstr(initFcn)
  err = sprintf('"initFcn" must be '''' or the name of a network initialization function.');
  return
end
if length(initFcn) & ~exist(initFcn)
  err = sprintf('"initFcn" cannot be set to non-existing function "%s".',initFcn);
  return
end

% Change function
net.initFcn = initFcn;

% Default parameters
if length(initFcn)
  net.initParam = feval(initFcn,'pdefaults');
else
  net.initParam = [];
end

% ===========================================================

function [net,err] = setInitParam(net,initParam)

% Check value
err = '';

% Change paramters
net.initParam = initParam;

% ===========================================================

function [net,err] = setPerformFcn(net,performFcn)

% Check value
err = '';
if ~isstr(performFcn)
  err = sprintf('"performFcn" must be '''' or the name of a network performance function.');
  return
end
if length(performFcn) & ~exist(performFcn)
  err = sprintf('"performFcn" cannot be set to non-existing function "%s".',performFcn);
  return
end

% Change function
net.performFcn = performFcn;

% Default parameters
if length(performFcn)
  net.performParam = feval(performFcn,'pdefaults');
else
  net.performParam = [];
end

% ===========================================================

function [net,err] = setPerformParam(net,performParam)

% Check value
err = '';

% Change paramters
net.performParam = performParam;

% ===========================================================

function [net,err] = setTrainFcn(net,trainFcn)

% Check value
err = '';
if ~isstr(trainFcn)
  err = sprintf('"trainFcn" must be '''' or the name of a network adapt function.');
  return
end
if length(trainFcn) & ~exist(trainFcn)
  err = sprintf('"trainFcn" cannot be set to non-existing function "%s".',trainFcn);
  return
end

% Change function
net.trainFcn = trainFcn;

% Default parameters
if length(trainFcn)
  net.trainParam = feval(trainFcn,'pdefaults');
else
  net.trainParam = [];
end

% ===========================================================

function [net,err] = setTrainParam(net,trainParam)

% Check value
err = '';

% Change paramters
net.trainParam = trainParam;

% ===========================================================
%                          UTILITY FUNCTIONS
% ===========================================================

function [subscripts,subs,type,moresubs]=nextsubs(subscripts)
% NEXTSUBS get subscript data from a subscript array.

subs = subscripts(1).subs;
type = subscripts(1).type;
subscripts(1) = [];
moresubs = length(subscripts) > 0;

% ===========================================================

function field = matchstring(field,strings)
% MATCHFIELD replaces FIELD with any field belonging to STRUCTURE
% that is the same when case is ignored.

field2 = lower(field);

for i=1:length(strings)
  if strcmp(field2,lower(strings{i}))
    field = strings{i};
    break;
  end
end

% ===========================================================

function field = matchfield(field,structure)
% MATCHFIELD replaces FIELD with any field belonging to STRUCTURE
% that is the same when case is ignored.

f = matchstring(field,fieldnames(structure));

% ===========================================================

function m=resizem(m,r,c)
%RESIZEM Resize matrix by truncating or adding zeros.

[R,C] = size(m);
if (r < R)
  m = m(1:r,:);
elseif (r > R)
  m = [m; zeros(r-R,C)];
end
if (c < C)
  m = m(:,1:c);
elseif (c > C)
  m = [m zeros(r,c-C)];
end
% ===========================================================

function mat = setmrows(mat,rows,row)
% SETMROWS removes or adds rows to MAT so that it has ROWS rows.
% If rows are added they are set to ROW.

[m,n] = size(mat);
if (rows < m)
  mat = mat(1:rows,:);
elseif (rows > m)
  mat = [mat; row(ones(rows-m,1),:)];
end

% ===========================================================

function flag = ismat(mat,m,n)
% ISMAT(MAT,M,N) is true if MAT is a MxN  matrix.
% If M or N is NaN, that dimension to be anything.

flag = isa(mat,'double');
if ~flag, return, end
if isnan(m), m = size(mat,1); end
if isnan(n), n = size(mat,2); end
flag = all(size(mat) == [m n]);

% ===========================================================

function flag = isdelay(v)
% ISDELAY(V) is true if V is a delay vector which
% means it must be a vector of increasing integer values.


flag = 1;
if size(v,2) == 0, return, end

flag = 0;
if ~isa(v,'double'); return, end
if any(~isfinite(v)), return; end
if any(v ~= floor(v)), return; end
if size(v,1) ~= 1, return; end
if any(diff(v) <= 0), return; end

flag = 1;

% ===========================================================

function flag = isrealmat(mat,m,n)
% ISREALMAT(MAT,M,N) is true if MAT is a MxN real matrix.
% If M or N is NaN, that dimension to be anything.

flag = isa(mat,'double');
if ~flag, return, end
flag = isreal(mat);
if ~flag, return, end
if isnan(m), m = size(mat,1); end
if isnan(n), n = size(mat,2); end
flag = all(size(mat) == [m n]);

% ===========================================================

function flag = isboolmat(mat,m,n)
% ISBOOLMAT(MAT,M,N) is true if MAT is a MxN bool matrix.
% If M or N is NaN, that dimension to be anything.

flag = isa(mat,'double');
if ~flag, return, end
flag = isreal(mat);
if ~flag, return, end
flag = all(all((mat == 0) | (mat == 1)));
if ~flag, return, end
if isnan(m), m = size(mat,1); end
if isnan(n), n = size(mat,2); end
flag = all(size(mat) == [m n]);

% ===========================================================

function [sub1,err] = subs1(subs,dim)
% SUBS1(SUBS,DIM) converts N-D subscripts SUBS to 1-D equivalents
% given the dimensions DIM of the index space.

err = '';
sub1 = 0;

m = 1:prod(dim);
m = reshape(m,dim);
eval('sub1 = m(subs{:});','err = lasterr;');

sub1 = sub1(:)';

% ===========================================================

function [sub1,sub2,err] = subs2(subs,dim)
% [SUB1,SUB2]=SUBS2(SUBS,DIM) converts N-D subscripts SUBS to
% 1-D equivalents given the dimensions DIM of the index space.

err = '';
sub1 = 0;
sub2 = 0;

m1 = [1:dim(1)]';
m1 = m1(:,ones(1,dim(2)),:);
eval('sub1 = m1(subs{:});','err = lasterr;');

if length(err), return, end

m2 = 1:dim(2);
m2 = m2(ones(1,dim(1)),:);
sub2 = m2(subs{:});

sub1 = sub1(:)';
sub2 = sub2(:)';

% ===========================================================

function flag = isint(mat)
% ISINT checks that a matrix contains only integer values.

flag = 0;
if ~isa(mat,'double'), flag = 1; return, end
if ~isreal(mat), flag = 1; return, end
if any(any(mat ~= floor(mat))), flag = 1; return, end

% ===========================================================

function [o,err]=nsubsasn(o,subscripts,v)
%NSUBSASN General purpose subscript assignment.

% Assume no error
err = '';

% Null case
if length(subscripts) == 0
  o = v;
  return
end

type = subscripts(1).type;
subs = subscripts(1).subs;
subscripts(1) = [];
o2 = [];

  % Paretheses
  switch type
  
  case '()'
    eval('o2=o(subs{:});','err=lasterr');
  if length(err), return, end
    [v,err] = nsubsasn(o2,subscripts,v);
  if length(err), return, end
  
    eval('o(subs{:})=v;','err=lasterr;')
  
  % Curly bracket
  case '{}'
    eval('o2=o{subs{:}};','err=lasterr');
  if length(err), return, end
    [v,err] = nsubsasn(o2,subscripts,v);
  if length(err), return, end
  
    eval('o{subs{:}}=v;','err=lasterr;')
    
  % Dot
  case '.'

    % Match field name regardless of case
    if isa(o,'struct') | isa(o,'network')
    found = 0;
      f = fieldnames(o);
    for i=1:length(f)
      if strcmp(subs,lower(f{i}))
        subs = f{i};
      found = 1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -