0
我正在寻找合适的语法,用于从矩阵中提取最大值并将其存储在传统Stata .do文件程序的局部变量中。Stata - 矩阵中的最大值
例如,在下面的矩阵:
matrix X = (1,2,3 \4,5,6\7,8,9)
函数应该返回9.
我都对着马塔手册,发现参考用于马塔的colmax
,colmin
和max
功能的数量,但我似乎无法让他们工作。
我正在寻找合适的语法,用于从矩阵中提取最大值并将其存储在传统Stata .do文件程序的局部变量中。Stata - 矩阵中的最大值
例如,在下面的矩阵:
matrix X = (1,2,3 \4,5,6\7,8,9)
函数应该返回9.
我都对着马塔手册,发现参考用于马塔的colmax
,colmin
和max
功能的数量,但我似乎无法让他们工作。
你应该在代码中展示尝试,以及在你做错了什么时得到建设性的建议。
考虑
. 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作为数字标量通常是一个更好的主意。相反,你最可能遗漏的是严格地说,本地宏是一个字符串,所以你必须以字符串形式返回它的值。