2017-09-23 80 views
0

我正在尋找合適的語法,用於從矩陣中提取最大值並將其存儲在傳統Stata .do文件程序的局部變量中。Stata - 矩陣中的最大值

例如,在下面的矩陣:

matrix X = (1,2,3 \4,5,6\7,8,9) 

函數應該返回9.

我都對着馬塔手冊,發現參考用於馬塔的colmaxcolminmax功能的數量,但我似乎無法讓他們工作。

回答

0

你應該在代碼中展示嘗試,以及在你做錯了什麼時得到建設性的建議。

考慮

. mata: max((1,2\3,4)) 
    4 

. mat x = (1,2\3,4) 

. mata : max(st_matrix("x")) 
    4 

. mata: st_local("max", strofreal(max(st_matrix("x")))) 

. di `max' 
4 

術語 「局部變量」 是格格不入的Stata;變量是數據集中唯一的變量(列)。標準術語是「本地宏」。自然地,在許多其他語言中,這樣的實體將被視爲變量。

將最大值傳遞迴Stata作爲數字標量通常是一個更好的主意。相反,你最可能遺漏的是嚴格地說,本地宏是一個字符串,所以你必須以字符串形式返回它的值。