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 zuI
, daher der Fehler. Kannst duI = 0
vor dem Aufrufpdist2
, und drucken Sie dannI
's Wert vor und nachpdist2
? - Können Sie sagen, was
knnkaggle
ist, und die Linien, die den Fehlermeldungen entsprechen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bedeutet es, dass es möglich Pfade durch Ihre Funktion, die sich nicht zuordnen überhaupt einen Wert für das output-argument.