簡體   English   中英

診斷錯誤:當 x 是矩陣時,不能指定 nrow 或 ncol

[英]diag error: nrow or ncol cannot be specified when x is a matrix

diag(nrow(V) * tausq, nrow = ncol(V), ncol = ncol(V)) 中的錯誤:當“x”是矩陣時,不能指定“nrow”或“ncol”

這是我嘗試運行時遇到的錯誤

D <- diag(nrow(V)*tausq, nrow=ncol(V), ncol=ncol(V))

這是我編寫的函數的一部分。

它是函數的第一行,V 是一個矩陣,它是參數的一部分。

這個錯誤是什么意思?

?diag ,您可以了解到該函數執行以下兩件事之一——它要么提取傳遞矩陣的主對角線,要么構造一個新的對角矩陣。 如果您正試圖(通過傳遞矩陣作為第一個參數來提取矩陣的主對角線diag ),那么你就無法通過nrowncol參數的diag功能。

錯誤告訴您顯然nrow(V)*tausq是您代碼中的矩陣——因為nrow(V)是一個常數,我們得出結論tausq必須是一個矩陣。 其結果是,它給你一個錯誤,由於設置nrowncol

長話短說——你似乎假設nrow(V)*tausq是一個常數,但實際上它是一個矩陣。 您需要將tausq轉換為常量才能按需要進行。

暫無
暫無

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

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