set_diagonal.pro

来自「IDL语言编写的用于天文自适应光学仿真的软件CAOS V6.0的第一部分。」· PRO 代码 · 共 48 行

PRO
48
字号
; $Id: set_diagonal.pro,v 1.2 2002/03/14 11:49:14 riccardi Exp $

;+
; SET_DIAGONAL
;
; SET_DIAGONAL, A, Diag
;
; INPUT
; A:	matrice quadrata nXn
; Diag:	vettore di lunghezza n (diagonale da settare in A)
;
; OUTPUT
; In uscita la matrice A ha per diagonale Diag
;-
pro set_diagonal, mat, diag

	on_error, 2
	s_mat = size(mat)

	case s_mat[0] of
		2: begin
			if s_mat(1) eq s_mat(2) and n_elements(diag) eq s_mat(1) then begin
				mat(lindgen(s_mat(1))*(s_mat(1)+1))=diag
				return
			endif
		end

		1: begin
			if s_mat(1) eq 1 and n_elements(diag) eq 1 then begin
				mat[0] = diag[0]
				return
			endif
		end

		0: begin
			if n_elements(diag) eq 1 then begin
				mat = diag[0]
				return
			endif
		end

		else: begin
		end
	endcase

	message, "Wrong format of input data"
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?