如何用Fortran编写相当于MATLAB的diff函数?

时间:2016-02-04 14:01:03

标签: fortran fortran90 difference

我想在Fortran90中写一个function / subroutine,它与MATLAB的diff函数一样,也就是说,它接收一个多维数组A和一个整数dim,并计算A指定的数组维度dim的相邻元素之间的差异。

首先,它应该是function还是subroutine?为什么?

如何处理A的尺寸?例如,如果A的大小为(a,b,c),则如果(a,b-1,c)dim,则输出的大小应为2;和

我认为每个尺寸的长度都不是问题。但我不知道要处理多少维度。

修改 我得到了关于内在函数eoshift的观点,也就是说,我可以eoshift沿着维A的{​​{1}}矩阵,然后从原始函数中减去它。不幸的是,这样做会使输出矩阵的大小等于dim,而它应该使维度A的范围减小1.在这个意义上,我不知道如何声明基于给定形状的数组(dim不起作用)。实际上,我现在不知道如何在REAL, DIMENSION(shape(A)) :: B / function中声明一个未知等级的变量。

1 个答案:

答案 0 :(得分:0)

最后我选择遵循@Vladimir F提出的路径(我是对的吗?)

_TIFFmalloc@LIBTIFF_4.0' usr/lib/libpq.so.5: undefined reference to