preparets
為神經網絡模擬或訓練准備輸入(input x)和目標(target y)時間序列數據
[Xs,Xi,Ai,Ts,EWs,shift] = preparets(net,Xnf,Tnf,Tf,EW)
net 神經網絡
Xnf 輸入數據(無反饋)
Tnf 目標數據(無反饋)
Tf 目標數據(有反饋)
Xs 轉換后的輸入數據
Xi 延遲狀態的第一個輸入項
Ai 延遲狀態的第一個層
Ts 轉換后的目標數據
EWs 轉換后的誤差權重
shift 從X和T前面截斷的時間步數,以便適當地填充Xi和Ai
以 NARX 網絡為例,代碼如下

[X,T] = simplenarx_dataset;
net = narxnet(1:2,1:2,20); % 這種情況一般用於模型的訓練
[Xs,Xi,Ai,Ts] = preparets(net,X,{},T);
net = train(net,Xs,Ts,Xi,Ai);
view(net)
y = net(Xs,Xi,Ai);
在此狀態下,設 X共有3165組元素,則T共有3165組元素
Xs 共有兩類各3163(3165-2)組元素,第一類對應 X(3:3165)第二類對應T(3:3165)
Xi 共有兩類各2組元素,第一類對應 X(1:2)第二類對應T(1:2)
Ai 為空
Ts 共有3163組元素,對應T(3:3165)

netc = closeloop(net); % 將神經網絡設置為閉環
netc.name = [net.name ' - Closed Loop'];
view(netc)
[xc,xic,aic,tc] = preparets(netc,X,{},T);
在此狀態下:
xc 共有3163(3165-2)組元素,對應 X(3:3165)
xc 共有3163(3165-2)組元素,對應 X(3:3165)
xic 共有2組元素,對應 X(1:2)
aic 為兩組元素,含義不明
tc 共有3163組元素,對應T(3:3165)

nets = removedelay(net); % 神經網絡設置為開環,且可進行預測
nets.name = [net.name ' - Predict One Step Ahead'];
view(nets)
[xs,xis,ais,ts] = preparets(nets,X,{},T);
在此狀態下:
xs 共有兩類各3164(3165-1)組元素,第一類對應 X(2:3165)第二類對應T(2:3165)
xis 共有兩類各1組元素,第一類對應 X(1:1)第二類對應T(1:1)
ais 為空
ts 共有3164組元素,對應T(3:3165+1),最后一組為NaN