error-index exceeds matrix dimension

4 次查看(过去 30 天)
In the following code i get error a s
P1 = [-1 -1 2 2; 0 5 0 5];
Tar = [0 ;1 ]
indices=crossvalind('kfold',Tar,10);
for i=1:10
test=(indices==i);trains= ~test
tst = (indices==i);
val = (indices== mod(i+1,10));
trn = ~[tst,val];
net=newff(P1(:,trains),Tar(:,trains),2);
net=init(net);
[net,tr]=train(net,P1(:,trains),Tar(:,trains));
out = round(sim(net,P(:,test)));
end
Index exceeds matrix dimensions.
Error in cfour (line 58)
net=newff(P1(:,trains),Tar(:,trains),2);
please help

采纳的回答

Walter Roberson
Walter Roberson 2012-4-17
That code is going to generate an error unless "indices" is of length 1 exactly. If it is longer than 1, then "test" and "train" will be longer than 1, and would then be too long to use as logical vectors against the columns of the single-column Tar array.
  1 个评论
FIR
FIR 2012-4-17
Walter can u please tell ho wto process newff with cross validation for fisheriris data set plz,i am getting many errors while processing as stated below in my comments

请先登录,再进行评论。

更多回答(2 个)

Andreas Goser
Andreas Goser 2012-4-17
net=newff(P1(:,trains),Tar(:,trains),2);
throws an error in the first run, as Tar has no second dimension. Probably you mean:
net=newff(P1(:,trains),Tar(trains),2);
  3 个评论
Andreas Goser
Andreas Goser 2012-4-17
You just asked why you got this error. Now you know ;-)
I may know more about MATLAB, but hope fully you know more about neural networks... The message "Inputs and targets have different numbers of samples." That sounds like an actionable error message, isn't it?
FIR
FIR 2012-4-17
yes Andreas,hopefully i dont know more about neural networks ,can u please telll how to correct this error please ,and also please answer for my post "edit-error in classsifier"

请先登录,再进行评论。


Greg Heath
Greg Heath 2012-4-22
1. The input and target matrices must have the same number of columns:
Tar = [ 0 0 1 1 ]
[ I N ] = size( P1) % [ 2 4 ] [ O N ] = size(Tar) % [ 1 4 ]
k = 10
indices=crossvalind('kfold',Tar,k)
2. a. It doesn't make sense to use k > N
b.Instead of using CROSSVALIND from the Bioinformatics TBX, the algorithm
might be more portable if you use CROSSVAL from the Statistics TBX.
3. trains= ~test
Rename. TRAINS is a MATLAB function.
Hope this helps.
Greg
  2 个评论
Greg Heath
Greg Heath 2012-4-22
[ O N ] = size(Tar) % [ 1 4 ]
Should be on a new line.
Greg
Greg Heath
Greg Heath 2012-4-22
Typical nontrivial classification examples should have classes with
many more I/O training pairs than input dimensions.
For the FisherIris example/demo (c = 3, I = 4, N = 150).
Although that ratio is
N/(3*4) = 12.5,
the scatter plot in the PetalLength/PetalWidth plane indicates
that the 3 classes are linearly separable with two hidden nodes.
Hope this helps.
Greg

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by