簡體   English   中英

八度:指數超出矩陣維度

[英]Octave : Index exceeds matrix dimensions

我在名為conditionals.m的文件中編寫了以下函數:

function result = conditionals(category, feature)

result=5;

end

我從Octave的命令行調用此函數:

v=conditionals(3,4)

我收到以下錯誤:

error : A(I) : Index exceeds matrix dimension.

這里有什么不對?

錯誤:

錯誤:A(I):索引超出矩陣維度。

表示八度音符認為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是conditionals.m文件,請確保它位於函數搜索路徑上。 在Octave提示符下運行path以查看功能搜索路徑。 在命令提示符which conditionals運行which conditionals以查看函數的位置。

它也發生在我身上,它可以在任何命令上發生,無論命令名稱如何。 當我運行PS1(">>"); 要更改Ovtave中的命令提示符,我得到了同樣的錯誤。

octave-3.2.3.exe:9> PS1(“>>”);

錯誤:A(I):索引超出矩陣維度。

正如其他人也提到的,當存在具有相同命令名的參數時會觸發此錯誤。 當我們錯誤地輸入錯誤語法的命令時會發生這種情況,因此,八度運行命令並生成一個帶有命令名稱的變量,該變量會使內部命令過載。

您可以通過who命令驗證此狀態。 如果您在此處可以看到與命令相同的變量名稱,則必須將其刪除。 使用clear variable_name刪除變量。

這是我的PS1命令輸出。

在此輸入圖像描述

希望能幫助到你。

暫無
暫無

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

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