所以定義了一個名爲「Z」矩陣,並顯示它的第一個元素很好地工作:Stata阻塞名爲「P」的矩陣嗎?
. matrix Z = J(1,3,0)
. matrix list Z
Z[1,3]
c1 c2 c3
r1 0 0 0
. di el(Z,1,1)
0
在另一方面乾脆改名爲「P」打破了el()
功能:
. matrix P = J(1,3,0)
. matrix list P
P[1,3]
c1 c2 c3
r1 0 0 0
. di el(P,1,1)
type mismatch
爲什麼?
更新1:
雖然發現上述行爲(在調試會話期間),I從命令行和從ADO文件中再生,然後用clear
,drop program _all
和matrix drop _all
結算後的Stata再現。但是,重新啓動Stata後,我無法重現此行爲。
更新2:
至少我以爲我用clear
...進一步的調查表明,我可以重現在重新啓動時的行爲,如果我開始在「P」用名稱的變量記憶。例如(起始塔塔鮮):
. matrix P = J(1,3,0)
. matrix list P
. di el(P,1,1)
0
. set obs 100
obs was 0, now 100
. gen Parsnips = uniform()
(100 real changes made)
. di el(P,1,1)
type mismatch
. rename Parsnips parsnips
. di el(P,1,1)
0
這對我來說確實是新鮮事物。我得到了和你一樣的結果。或者,您可以使用'di P [1,1]'來顯示元素。我已經用你的例子測試了它,沒有任何問題。 – 2014-09-05 23:07:04
+1哦,是的......這是Stata,而不是R或Python,所以我忘記了訂閱(我通常認爲Stata非常努力地讓事情變得比其他語言更晦澀/更具挑戰性:)。 – Alexis 2014-09-05 23:58:01