用 Matlab 神经网络工具箱拟合复杂非线性函数
首先,需要准备好数据,以一个单输入单输出的系统为例
1 从 Excel 中导入数据
如果不是从Excel中导入可以跳过该步骤
导入函数:
[num,txt,raw]=xlsread('xxx\xxx.xlsx');
num返回的是excel中的数据;txt输出的是文本内容;raw输出的是未处理数据;圆括号是文件所在的路径。
比如有这么一个表,我需要用第一列(综合间隙)作为输出,第四列(电流)作为输入
我们就需要有两个数组变量来存储上面这两列
clc
clear all
close all
% 读入数据
[num,txt,raw]=xlsread('悬浮点数据\悬浮点4数据汇总.xlsx');
%输入
input=num(:,4);
%输出
output=num(:,1);
一定要运行一下,确保工作区里面有这俩,否则后面导入会报错的
2 神经网络工具箱
打开 Matlab 的神经网络工具箱
或者直接输入命令:nftool
导入数据,前提是工作区内有
这里有个坑!!!
如果是单输入单输出,一定要设置成列向量,否则只有一个样本。上面是一个样本,把 input 和 output 变成列向量后变成 39550 个
对数据进行分块,多少用于训练?多少用于测试?一般选用默认即可
设置隐藏层的神经元数量,默认为10,可自定义
点击 Train 即可开始训练
训练过程中会跳出一个窗口,显示训练进度,时间等消息
训练结束后,回到刚才那个页面,连续两次点击 next。
可以把训练后的神经网络用 M语言的形式、simulink的形式、图片的形式保存下来