用 Matlab 神经网络工具箱拟合复杂非线性函数
Posted 木白CPP
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用 Matlab 神经网络工具箱拟合复杂非线性函数相关的知识,希望对你有一定的参考价值。
用 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的形式、图片的形式保存下来
matlab拟合曲线的方法有几种
matlab最常用拟合曲线的函数有:1、regress()和polyfit()适用于线性函数的拟合
2、lsqcurvefit()和nlinfit()适用于较复杂的非线性函数的拟合
3、fit()适用于最常用函数的拟合,如指数函数,傅立叶函数、高斯函数、多项式函数、幂函数、有理函数等等。类似于cftool工具箱。 参考技术A 方法/步骤
运行Matlab软件。
在工作空间中存入变量的实验数据。具体如下:
可以直接用矩阵来存放数据,直接在命令窗口输入
x=[数据x1,数据x2,...,数据xn];
y=[数据y1,数据y2,...,数据yn];
当数据较多时,可以从excel,txt等文件中导入。
把数据存入工作空间后,在命令窗口中输入cftool,回车运行。
在这个拟合工具窗口的左边,选择变量,即分别选择x,y。
选择拟合的曲线类型,一般是线性拟合,高斯曲线,平滑曲线等,根据需要选择。
选择完后会自动完成拟合,并且给出拟合函数表达式。
点击菜单栏中的“file”,选择“print to figure"进行画图。
在图形窗口中,可以对图形显示模式进行修改,如添加标题,坐标名称等。
最后得到比较完整的图形曲线。点击”file"中的“save"进行保存。
以上是关于用 Matlab 神经网络工具箱拟合复杂非线性函数的主要内容,如果未能解决你的问题,请参考以下文章