Clear Filters
Clear Filters

I want to know how to writ code to net1 = train(net,input,z) but z is double(complex)??

2 views (last 30 days)
net1 = train(net, input, z);
Error using nntraining.setup>setupPerWorker
Targets T is complex.
Error in nntraining.setup (line 77)
[net,data,tr,err] = setupPerWorker(net,trainFcn,X,Xi,Ai,T,EW,enableConfigure);
Error in network/train (line 342)
[net,data,tr,err] = nntraining.setup(net,net.trainFcn,X,Xi,Ai,T,EW,enableConfigure,isComposite);
  2 Comments
KSSV
KSSV on 10 Sep 2022
It looks your target is complex number. NN do not support complex values. Instead you may take target as two values real and imaginary seperately.
Darshini
Darshini on 10 Sep 2022
If I can't change the Z function, how should I code it?
z= ((exp(sin(x))).*(cos(y)))+((sin(y)).*log(abs(tan(x.^2))+(x.^3)));

Sign in to comment.

Answers (2)

Chunru
Chunru on 10 Sep 2022
Edited: Chunru on 10 Sep 2022
net1 = train(net,input,[real(z) imag(z)])
  5 Comments
Darshini
Darshini on 10 Sep 2022
now it show
Error using network/train
Inputs and targets have different numbers of samples.
again
If I can't change the Z function, how should I code it?
z= ((exp(sin(x))).*(cos(y)))+((sin(y)).*log(abs(tan(x.^2))+(x.^3)));
Chunru
Chunru on 11 Sep 2022
Attach your code to demonstrate the problem. Otherwise it's difficult to guess what is wrong.

Sign in to comment.


Walter Roberson
Walter Roberson on 11 Sep 2022
z= ((exp(sin(x))).*(cos(y)))+((sin(y)).*log(abs(tan(x.^2))+(x.^3)));
z appears to be your target for a fitting function. You tell us that z is complex-valued.
Create a 2 x N array xy with x in the first row and y in the second row.
Create a 2 x N array zri with real(z) in the first row and imag(z) in the second row.
Now you can train xy as the features and zri as the targets.
You might possibly have to transpose xy tne N x 2 and zri to N x 2 for the particular training function you use.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!