Narxnet, Error using struct, Conversion to struct from double is not possible.
Show older comments
In the Matlab UserGuide for Neural Networks Toolbox R2012a (page 3-25), there is an example of a Dynamics Network with the following code:
load magdata
[u,us] = mapminmax(u);
[y,ys] = mapminmax(y);
y = con2seq(y);
u = con2seq(u);
d1 = [1:2];
d2 = [1:2];
narx_net = narxnet(d1,d2,10);
narx_net.divideFcn = '';
narx_net.trainParam.min_grad = 1e-10;
[p,Pi,Ai,t] = preparets(narx_net,u,{},y);
narx_net = train(narx_net,p,t,Pi);
yp = sim(narx_net,p,Pi);
e = cell2mat(yp)-cell2mat(t);
plot(e);
But when I use the code above I get the following error message:
Error using struct Conversion to struct from double is not possible.
However when I use:
narx_net = narxnet(1:2,1:2,10);
Instead of:
d1 = [1:2];
d2 = [1:2];
narx_net = narxnet(d1,d2,10);
The program runs okay.
Then when I try to run the same code but with my own input and output data. So I define u and y myself, I got the same error message again.
Even more strange when I then try to run the original code (see below) then I also get the error message, while previous the code run fine??? When I restart Matlab, the code below works fine again???
load magdata
[u,us] = mapminmax(u);
[y,ys] = mapminmax(y);
y = con2seq(y);
u = con2seq(u);
narx_net = narxnet(1:2,1:2,10);
narx_net.divideFcn = '';
narx_net.trainParam.min_grad = 1e-10;
[p,Pi,Ai,t] = preparets(narx_net,u,{},y);
narx_net = train(narx_net,p,t,Pi);
yp = sim(narx_net,p,Pi);
e = cell2mat(yp)-cell2mat(t);
plot(e);
Hopefully someone can help me with this mystery. Many thanks
Accepted Answer
More Answers (0)
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!