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

📄 simnetrsom.m

📁 a neural network,Recursive SOM and Marge SOM ,can be use for time series and data fit.
💻 M
字号:
function Net = SimNetRSOM(Net , IN)%   SimNetRSOM  Simulate a RSOM network%   %   Inputs:     Net:    Network structure created by 'CreateNetRSOM'%                       function.%               IN:     Input time series.%%   Outputs:    Net:    Simulated network with results for Winners, State%                       Variables, and Weights. These values can be%                       accessed from 'State' field of network structure:%                       Net.State.Winners , Net.State.RSOMState.%                       The results of trained weights also can be%                       addressed from 'W' field: Net.W.WINRSOM ,%                       Net.W.WRSOM.%%   ---------------------------------------------------------%   Amir Reza Saffari Azar Alamdari%   http://www.ymer.org/main.htm , amir@ymer.org%   ---------------------------------------------------------%% InitializingINNum       = Net.Dim.INNum;RSOMNum     = Net.Dim.RSOMNum;RSOMSize    = Net.Dim.RSOMSize;WINRSOM     = Net.W.WINRSOM;WRSOM       = Net.W.WRSOM;RSOMType    = Net.RSOM.RSOMType;RSOMDFun    = Net.RSOM.RSOMDFun;RSOMCFun    = Net.RSOM.RSOMCFun;RSOMDINP    = Net.RSOM.RSOMDINP;RSOMDCP     = Net.RSOM.RSOMDCP;RSOMUnSLMode    = Net.Learn.RSOMUnSLMode;RSOMUnSLFun     = Net.Learn.RSOMUnSLFun;%% SimulatingStopTime    = size(IN , 2);WinnerInd   = zeros(1 , StopTime);switch RSOMType        case 'RecSOM'                RSOMState           = zeros(RSOMNum , StopTime + 1);        RSOMState(: , 1)    = Net.State.RSOMState(: , end);            case 'SOMSD'                RSOMState           = zeros(size(RSOMSize , 2) , StopTime + 1);        RSOMState(: , 1)    = Net.State.RSOMState(: , end);            otherwise                error('Unknown RSOMType !!!')        endfor n = 2:StopTime + 1        I   = IN(: , n - 1);        switch RSOMDFun                case 'Euclid'                        DINTemp = sum((WINRSOM - repmat(I , 1 , RSOMNum)).^2 , 1);            DCTemp  = sum((WRSOM - repmat(RSOMState(: , n - 1) , 1 , RSOMNum)).^2 , 1);            DTemp   = RSOMDINP*DINTemp + RSOMDCP*DCTemp;                        TempWinner          = find(DTemp == min(DTemp));            WinnerInd(n - 1)    = TempWinner(1);                        switch RSOMType                                case 'RecSOM'                                        switch RSOMCFun                        case 'Exp'                            RSOMState(: , n)    = exp(-DTemp)';                        otherwise                            error('Unknown RSOMCFun !!!')                    end                                    case 'SOMSD'                                        [Temp(1) , Temp(2)] = ind2sub(RSOMSize , WinnerInd(n - 1));                                        RSOMState(: , n)    = Temp';            end                                otherwise                        error('Unknown RSOMDFun !!!')                end        %% Learning        switch RSOMUnSLMode                case 'Online'                        switch RSOMUnSLFun                                case 'None'                                                        otherwise                                        Net = feval(RSOMUnSLFun , Net , I , RSOMState(: , n - 1) , WinnerInd(n - 1));                                        WINRSOM     = Net.W.WINRSOM;                    WRSOM       = Net.W.WRSOM;                                end                    otherwise                        error('Unknown RSOMUnSLMode !!!')    end    end%% StoringNet.State.Winners   = WinnerInd;Net.State.RSOMState = RSOMState;Net.State.StopTime  = StopTime;if Net.Misc.ShowMessages    disp('Simulating network: Done.')endreturn

⌨️ 快捷键说明

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