我在一個名爲conditionals.m文件寫了如下的功能:八度:指數超過矩陣尺寸
function result = conditionals(category, feature)
result=5;
end
我調用此函數從八度的命令行:
v=conditionals(3,4)
我得到以下錯誤:
error : A(I) : Index exceeds matrix dimension.
這裏有什麼錯?
我在一個名爲conditionals.m文件寫了如下的功能:八度:指數超過矩陣尺寸
function result = conditionals(category, feature)
result=5;
end
我調用此函數從八度的命令行:
v=conditionals(3,4)
我得到以下錯誤:
error : A(I) : Index exceeds matrix dimension.
這裏有什麼錯?
錯誤:
error : A(I) : Index exceeds matrix dimension.
表示倍頻認爲conditionals
是一個矩陣,而不是一個函數。
Octave可能不知道conditionals
是一個函數 - 而是將其視爲矩陣。
您是否檢查過函數是否在Octave的搜索路徑中?
這適用於我。
octave> function result = conditionals (category, feature)
> result = 5;
> endfunction
octave> v = conditionals (3, 4)
v = 5
錯誤提示您有一個與函數名稱相同的變量。在Octave提示符下鍵入whos
以查看已定義變量的列表。如果你看到一個名爲conditionals
,與clear conditionals
還要去掉它,如果條件語句是conditionals.m
文件,請確保它的功能搜索路徑。在Octave提示符處運行path
以查看函數搜索路徑。在命令提示符下運行which conditionals
以查看函數的位置。
它也發生在我身上,它可以發生在任何命令上,而不管命令名稱如何。當我運行PS1(">>");
來更改Ovtave中的命令提示符時,我得到了同樣的錯誤。
octave-3.2.3.exe:9> PS1(">>");
error: A(I): Index exceeds matrix dimension.
正如別人也提到的,當有一個參數具有相同的命令名稱時,會觸發此錯誤。當我們錯誤地輸入錯誤語法的命令時,會發生這種情況,因此,八度運行命令並生成一個變量,其命令名稱會超出內部命令的範圍。
您可以通過who
命令驗證此狀態。如果您在這裏可以看到與您的命令相同的變量名稱,則必須將其刪除。使用clear variable_name
刪除變量。
這是我輸出的PS1命令。
希望它能幫助。