其它神经网络

【说明】matlab工具箱中的序列数据

作者 : 老饼 发表日期 : 2023-08-21 16:02:22 更新日期 : 2023-08-22 00:20:00
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com



在Elman等神经网络中的输入输出都是序列数据,

本文讲解matlab中是如何表示序列数据的,并展示如何将矩阵数据转换为序列数据



   01. matlab的序列数据   



本节讲解在matlab中是如何表示序列数据的,并列举3种常见例子



    matlab的序列数据概述    


matlab中的序列数据以Cell的形式记录,下面分别讲解如下三种情况
👉1.单变量单序列数据
👉2.多变量单序列数据
👉3.多变量多序列数据



    单变量单序列数据    


matlab中的序列数据以Cell的形式记录
序列有多少个时刻有就有多少个Cell,每个Cell里记录一个时刻的数据,
 如下,一个单变量的单序列数据样本如下表示:
s = {1.2,1.3,1.5,1.8}
  
该序列长度为4,只有一个变量




    多变量单序列数据    


如果每个时刻的输入有n个变量,
则每个cell里存放n行数据,每行代表一个变量,
例如,两个变量的单序列数据如下表示:
s = {[1.2;2.3],[1.3;2.5],[1.5;2.8],[1.8;3.1]}
  
   
该序列长度为4,每个时刻有两个变量,



    多变量多序列数据    


如果我们拥有多条序列数据
 每个序列数据的时刻长度、变量个数都必须是一致的
则每个Cell里存放的是一个矩阵,它的行代表变量,第i列代表第i个序列
例如,两个变量的三条序列数据如下表示:
s = {[1.2,2.2,4.8;2.3,4.3,3.5],[1.3,2.4,2.7;2.5,3.6,4.2],[1.5,4.5,3.6;2.8,2.7,4.5],[1.8,1.1,2.2;3.1,6.2,3.3]}
   
  


     matlab的序列数据总结     


总的来说,matlab的序列数据就是用Cell来记录每一个时刻的数据
每个时刻的数据是一个矩阵,其中行代表变量,列代表序列,如下
 





   02. 矩阵数据与序列数据格式的转换   



本节讲解在matlab中如何把矩阵数据转换为序列数据格式



     matlab矩阵转为单序列     


往往我们的数据都是以矩阵的形式存放,
下面讲解如何将矩阵数据转为序列数据格式
矩阵转为单序列 
一个单序列数据,原来用一个矩阵存放
现要将它转为序列格式数据,也就是将矩阵的的每列各用一个Cell存放
  
这种情况只需通过con2seq函数就可以实现
示例代码如下
x = [0.1,0.2,0.3,0.4,0.5;1.2,1.5,1.3,2.2,3.4]
s = con2seq(x)                                        
 
矩阵转为多序列 
如果是多序列数据,原来用一个矩阵存放
现要将它转为序列格式数据,也就是将矩阵的每n(序列个数)列各用一个Cell存放
 
这种情况只需按如下方式实现
示例代码如下
x = [0.1,2.3,1.5,4.4,3.5,2.6;1.2,2.5,1.4,2.2,3.4,3.3]
s = con2seq(x,2)                                                
 
其中,con2seq的第2个参数,代表时刻个数。
✍️补充:关于序列数据转换回矩阵
只需使用seq2con,就可以把序列数据转换回矩阵数据













 End 








联系老饼