错误:呼叫期间未分配输出参数 [英] Error: Output Argument Not Assigned During Call
问题描述
这是我的k近邻算法的代码:
Here's my code for a k-nearest neighbors algorithm:
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
如果您要问为什么我有两个单独的功能,那是一个很好的问题.但是无论如何,我都会得到错误:
If you're asking why I have two separate functions, that's a good question. But regardless, I'm getting the errors:
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);
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);
无法解决问题.
推荐答案
这意味着通过您的函数的可能路径根本不会为输出参数分配任何值.
It means that there are possible paths through your function which don't assign any value at all to the output argument.
这篇关于错误:呼叫期间未分配输出参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!