Fehler: Ausgabe-Argument Nicht Zugewiesen, Während Call

Hier ist mein code für eine k-nächste Nachbarn-Algorithmus:

function [preds, distances, indices] = knnfull(HandTrain,HandTest)
    nn_value = 10; % how many nearest      
    inputs = HandTrain(:,2:end);
    Y = HandTrain(:,1); 
    [preds, distances, indices] = knn_alg(inputs, y, HandTest, nn_value);
end

function [preds, D, I] = knn_alg(train_inputs, train_y, test_inputs, nn_value)
    num_train_inputs = size(train_inputs,2);
    num_train_examples = size(train_inputs,1)
    num_test_inputs = size(test_inputs,2);
    num_test_examples = size(test_inputs,1)
    preds = zeros(size(test_inputs,1),1);
    [D,I] = pdist2(train_inputs,test_inputs,'euclidean','Smallest',nn_value);
    preds = mode(train_y(I'),2);
end

Falls Ihr Euch fragt, warum ich zwei separate Funktionen, das ist eine gute Frage. Aber egal, ich bin immer der Fehler:


Error in knnkaggle>knn_alg (line 16)
num_train_inputs = size(train_inputs,2);

Output argument "indices" (and maybe others) not assigned during call to
"C:...knn_alg".

Error in knnkaggle (line 10)
[preds, distances, indices] = knn_alg(inputs, y, HandTest, nn_value);

Kann nicht herausfinden, das Problem.

  • Meine Vermutung wäre, dass pdist2 kehrt vorzeitig, ohne ihm etwas zu I, daher der Fehler. Kannst du I = 0 vor dem Aufruf pdist2, und drucken Sie dann I's Wert vor und nach pdist2?
  • Können Sie sagen, was knnkaggle ist, und die Linien, die den Fehlermeldungen entsprechen?
InformationsquelleAutor user1956609 | 2013-01-09
Schreibe einen Kommentar