%% Hopfield神经网络的联想记忆——数字识别 %% 清空环境变量 clear all clc %% 数据导入 load data1 array_one load data2 array_two %% 训练样本(目标向量) T = [array_one;array_two]'; %% 创建网络 net = newhop(T); %% 数字1和2的带噪声数字点阵(固定法) load data1_noisy noisy_array_one load data2_noisy noisy_array_two %% 数字1和2的带噪声数字点阵(随机法) % noisy_array_one=array_one; % noisy_array_two=array_two; % for i = 1:100 % a = rand; % if a < 0.3 % noisy_array_one(i) = -array_one(i); % noisy_array_two(i) = -array_two(i); % end % end %% 数字识别 % 单步仿真——TS = 1(矩阵形式) % identify_one = sim(net,10,[],noisy_array_one'); % 多步仿真——元胞数组形式 noisy_one = {(noisy_array_one)'}; identify_one = sim(net,{10,10},{},noisy_one); identify_one{10}'; noisy_two = {(noisy_array_two)'}; identify_two = sim(net,{10,10},{},noisy_two); identify_two{10}';
时间: 2024-04-11 08:32:39 浏览: 183
这段代码是关于使用 Hopfield 神经网络进行数字识别的示例。首先,通过 `load` 命令从数据文件中导入 `array_one` 和 `array_two` 数组作为训练样本的目标向量。
然后,使用 `newhop()` 函数创建一个 Hopfield 神经网络模型 `net`,并将目标向量 `T` 用于网络的训练。
接下来,通过 `load` 命令从数据文件中导入 `noisy_array_one` 和 `noisy_array_two` 数组作为带噪声的数字点阵。这里提供了两种方式来生成带噪声的点阵:一种是固定法,另一种是随机法(注释部分)。你可以选择其中一种方式进行测试。
最后,通过调用 `sim()` 函数使用 Hopfield 神经网络模型对带噪声的点阵进行数字识别。先将 `noisy_array_one` 转换为单元素的 cell 数组 `noisy_one`,然后使用 `sim()` 函数进行多步仿真,并将结果保存在 `identify_one` 中。最后,将结果取出并转置,得到一个 10x1 的数组 `identify_one{10}'`。同样地,对 `noisy_array_two` 进行识别,并将结果保存在 `identify_two` 中,最后取出并转置结果。
请注意,这段代码中还存在一些注释部分,你可以根据需要选择是否解注释并使用相应的代码。
阅读全文