Кажется, я не умею ни FORTRAN, ни MATLAB, хотя немного знаю обо всех этих.Неявный интерфейс в 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 передается в функцию хр (·), не принимаются в качестве фиктивного аргумента, и D также может быть передан с каких-либо ограничений. Результат, указанный в программе, следующий:
A = 1.0000000
B = 2.0000000
C = 3.0000000
D = 4.0000000
E = 5.0000000
Мне непонятно, что такое неявный интерфейс в Fortran. Из текста вашего вопроса, означает ли это, что переменные (возможно, с тем же именем) каким-то образом передаются и выходят из подпрограмм, не передаваясь в качестве аргументов? – Pursuit
Мне очень ясно, что подразумеваемый интерфейс в Fortran. Но использование термина в вопросе заставляет меня подозревать, что OP использует этот термин в не-Fortran-стандартном режиме. Может ли OP быть более явным? –
@ Lagrange: не могли бы вы отредактировать свои фрагменты кода и удалить их из комментариев. Очень сложно понять, что ваша программа сейчас. –