错误:呼叫期间未分配输出参数 [英] Error: Output Argument Not Assigned During Call

查看:89
本文介绍了错误:呼叫期间未分配输出参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆