似乎我不擅长 FORTRAN 或 MATLAB,但对它们都有一点了解。
虽然我发现 MATLAB 擅长处理矩阵,但我还发现 fortran 程序中的隐式接口相当方便(我可以将声明的变量,尤其是一些大型数组,传递给隐式函数而不将它们作为输入伪参数,而且我也可以通过接口中声明的变量很容易返回调用程序)。
我只是想知道 MATLAB 中是否有任何类似的机制作为隐式接口,以便我可以像使用 FORTRAN 一样完成工作。(全局变量似乎不是很好,因为如果我尝试经常调用该函数,它只会变成一项乏味的工作——也许我错了)
你怎么看?谢谢。
这是一个例子:
PROGRAM test_function
IMPLICIT NONE
REAL :: A, B
REAL :: C,D,E
A = 1
B = 2
D = 3
E = xf(A)-A
WRITE (*,*), "A = ", A
WRITE (*,*), "B = ", B
WRITE (*,*), "C = ", C
WRITE (*,*), "D = ", D
WRITE (*,*), "E = ", E
CONTAINS
FUNCTION xf(x)
IMPLICIT NONE
REAL, INTENT(IN) :: x
REAL :: xf
C = x+B
D = x+D
xf = A+B+C
END FUNCTION xf
END PROGRAM test_function
D 被传递到函数 xf(·) 中而不被视为哑参数,并且 D 也可以不受限制地传递出去。程序给出的结果如下:
A = 1.0000000
B = 2.0000000
C = 3.0000000
D = 4.0000000
E = 5.0000000