📄 _diag2mat.ado
字号:
*! version 1.0.0 25aug2002
program define _diag2mat
version 8.0
syntax , Mat(string) Dmat(string) Rows(integer) Cols(integer) /*
*/[ COrder ]
capture confirm matrix `mat'
if _rc > 0 {
di as err "mat() does not define a marix"
exit 198
}
tempname mat2
mat `mat2' = `mat'
local mrows = rowsof(`mat2')
local mcols = colsof(`mat2')
if `mrows' != `mcols' {
di as err "diag2mat only works on square matrices"
exit 198
}
if `mcols' != `rows'*`cols' {
di as err "rows() * cols() is not equal to number of " /*
*/ "diagonal elements in mat()"
exit 198
}
mat `dmat' = J(`rows',`cols', 0)
if "`corder'" == "" {
forvalue i = 1/`rows' {
forvalue j = 1/`cols' {
mat `dmat'[`i',`j'] = /*
*/ `mat2'[`j'+(`i'-1)*`cols', /*
*/ `j'+(`i'-1)*`cols']
}
}
}
else {
forvalue i = 1/`rows' {
forvalue j = 1/`cols' {
mat `dmat'[`j',`i'] = /*
*/ `mat2'[`j'+(`i'-1)*`cols', /*
*/ `j'+(`i'-1)*`cols']
}
}
}
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -