函数内for循环内的未定义函数或变量(matlab)

时间:2017-11-09 08:00:35

标签: matlab undefined-variable

我使用for-loop

编写了一个计算Kendall距离的函数
function [ distance ] = kendall_tau(y, yy, pair_list)
distance = 0;
for row = 1:length(pair_list)
    i = pairlist(row,1);
    j = pairlist(row,2);
    if (y(i)<y(j))&&(yy(i)>yy(j)) || (y(i)>y(j))&&(yy(i)<yy(j))
       distance = distance + 1;
    end
end

当我尝试使用真实值的这个函数时,这个未定义的变量不断提高,我不知道为什么

kendall_tau(y_valid,y_valid_shuffle,pair_list_valid)

y_valid,y_valid_shuffle是150x1矩阵,pair_list_valid是978x2矩阵

Undefined function or variable 'pairlist'.
Error in kendall_tau (line 17)
    i = pairlist(row,1);

我是matlab中的菜鸟。谢谢你的帮助!

1 个答案:

答案 0 :(得分:2)

我认为,最有可能的是

i = pairlist(row,1);

应该是

i = pair_list(row,1);

一个拼写错误,由于MATLAB使用same()来访问数组元素并给出函数参数,因此它会给出一个未定义的函数错误。