2017-09-23 468 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作为数字标量通常是一个更好的主意。相反,你最可能遗漏的是严格地说,本地宏是一个字符串,所以你必须以字符串形式返回它的值。