📄 som_demo2.m
字号:
clear;clf;% 檬扁 楷搬 啊吝摹 肮荐num_rows = 15;num_cols = 15;a = 0.20; % 捞眶 农扁(G)客 切嚼伏(eta)狼 皑家甫 困茄 牢磊% 檬扁 啊吝摹 蔼 汲沥% 林狼: 捞 抗力绰 2瞒盔 单捞磐甫 青纺肺 促风瘤 臼绊 汗家荐甫 捞侩窍咯 钎泅窍看娇dx = 0.1;m = dx*(1-2*rand(num_rows,num_cols)) + dx*(1i-2i*rand(num_rows,num_cols));for cycle=1:5000, eta = cycle^(-a); % 切嚼伏 (倔付唱 腹篮 畴靛甫 框流老 巴牢啊甫 搬沥) G = 0.5 + 10*cycle^(-a);% 啊快矫救 气 包访 颇扼固磐 x = 1-2*rand; y = 1-2*rand; inp = x + y*i; % 涝仿 单捞磐(汗家荐肺 2瞒盔 钎泅) % 铰磊 畴靛甫 茫绰促 % 芭府 青纺阑 汲沥窍绊 dist_mat = (real(m)-real(inp)).^2 + (imag(m)-imag(inp)).^2; % dist_mat甫 氦磐肺 官操绊, 弥家 己盒阑 茫绰促. [win_rows,win_cols] = find(dist_mat==min(dist_mat(:))); rand_idx = ceil(length(win_rows)*rand); % 捞甸 铰磊吝俊辑 烙狼狼 窍唱甫急琶茄促 win_row = win_rows(rand_idx); win_col = win_cols(rand_idx); % 拜磊俊辑 铰磊肺 何磐 芭府甫 拌魂窍绊 [col_idx,row_idx] = meshgrid(1:num_cols,1:num_rows); % 牢郸胶 青纺阑 父甸绊 grid_dist = abs(row_idx-win_row) + abs(col_idx-win_col); % 阿 畴靛俊 措窍咯 捞眶狼 农扁甫 唱鸥郴绰 啊快矫救 目澄阑 拌魂茄促. f = eta * exp(-(grid_dist/G).^2); % 漂隆 瘤档甫 敲吩 if max(cycle == [1 10 30 50 100 200 400 600 800 1000 3000 5000]), % 捞 窜拌付促 敲吩 figure(1); if (cycle>1),delete(h);end; % 捞傈 敲吩篮 瘤快绊 hold on; h=plot(real(m),imag(m),'w-',real(m'),-imag(m'),'w-'); % 货肺款 SOFM 拜磊甫 弊赴促. hold off; title(['绕访 冉荐:' num2str(cycle) ... ', 捞眶狼 农扁:' num2str(G) ... ', 切嚼伏:' num2str(eta) ]); drawnow; end; %%% 畴靛 捞悼 m = m + f.*(inp-m);end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -