matlab在点内加入权值,MATLAB神经网络工具箱中感知器权值和阈值的学习函数learnp | 学步园...

我先把代码贴过来!慢慢研究!

function [out1,out2] = learnp(varargin)

%LEARNP Perceptron weight/bias learning function.

%

% learnp is the perceptron weight/bias learning function.

%

% learnp(W,P,Z,N,A,T,E,gW,gA,D,LP,LS) takes several inputs,

% W - SxR weight matrix (or b, an Sx1 bias vector).

% P - RxQ input vectors (or ones(1,Q)).

% Z - SxQ weighted input vectors.

% N - SxQ net input vectors.

% A - SxQ output vectors.

% T - SxQ layer target vectors.

% E - SxQ layer error vectors.

% gW - SxR gradient with respect to performance.

% gA - SxQ output gradient with respect to performance.

% D - SxS neuron distances.

% LP - Learning parameters, none, LP = [].

% LS - Learning state, initially should be = [].

% and returns,

% dW - SxR weight (or bias) change matrix.

% LS - New learning state.

%

% learnp(CODE) returns useful information for each CODE string:

% 'pnames' - Returns names of learning parameters.

% 'pdefaults' - Returns default learning parameters.

% 'needg' - Returns 1 if this function uses gW or gA.

%

% Here we define a random input P and error E to a layer

% with a 2-element input and 3 neurons.

%

% p = rand(2,1);

% e = rand(3,1);

%

% LEARNP only needs these values to calculate a weight change.

%

% dW = learnp([],p,[],[],[],[],e,[],[],[],[],[])

%

% See also LEARNPN, NEWP, ADAPT, TRAIN.

% Mark Beale, 1-31-92

% Revised 11-31-97, MB

% Copyright 1992-2010 The MathWorks, Inc.

% $Revision: 1.1.6.8 $ $Date: 2010/04/24 18:09:27 $

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

% BOILERPLATE_START

% This code is the same for all Learning Functions.

persistent INFO;

if isempty(INFO), INFO = get_info; end

if (nargin < 1), nnerr.throw('Not enough arguments.'); end

in1 = varargin{1};

if ischar(in1)

switch in1

case 'info'

out1 = INFO;

case 'check_param'

out1 = check_param(varargin{2});

otherwise,

try

out1 = eval(['INFO.' in1]);

catch me

nnerr.throw(['Unrecognized first argument: ''' in1 ''''])

end

end

else

[out1,out2] = apply(varargin{:});

end

end

function sf = subfunctions

sf.apply = @apply;

end

function v = fcnversion

v = 7;

end

% BOILERPLATE_END

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

function info = get_info

info = nnfcnLearning(mfilename,'Perceptron',...

fcnversion,subfunctions,false,true,true,false,[]);

% TODO - Indicate that it requires error

end

function err = check_param(param)

err = '';

end

function [dw,ls] = apply(w,p,z,n,a,t,e,gW,gA,d,lp,ls)

dw = e*p';

end

你可能感兴趣的:(matlab在点内加入权值)