簡體   English   中英

函數(matlab)中for循環內的未定義函數或變量

[英]Undefined function or variable inside a for loop within a function (matlab)

我編寫了一個函數,使用for循環計算肯德爾距離

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的菜鳥。 謝謝您幫忙 !

我認為,最有可能的是

i = pairlist(row,1);

本來應該

i = pair_list(row,1);

拼寫錯誤,由於MATLAB使用相同的()訪問數組元素並提供函數自變量,因此會產生未定義的函數錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM