Fortran Coder

标题: 如何返回数组中某个特定元素的位置 [打印本页]

作者: SongAngel    时间: 2019-5-26 22:09
标题: 如何返回数组中某个特定元素的位置
不知道Fortran的内部函数是否包含能够返回数组中某个特定元素位置的函数,我查找了一下,只能找到返回最大值和最小值位置的函数,而且当存在两个以上的最大值或者最小值的时候,只能返回第一个最值的位置。
有没有类似于MATLAB里面的Find函数呢???
谢谢大家了

作者: vvt    时间: 2019-5-26 22:10
没有内部函数,自己循环吧
作者: SongAngel    时间: 2019-5-26 22:12
我的这个数据量太大了,循环很耗时,所以才想看看有没有内部函数
作者: SongAngel    时间: 2019-5-26 22:15
而且感觉的Fortran的这些内部函数吧,效率也不是很高,不知是怎么回事儿。之前用MATLAB的时候,同样一个功能,利用它内置的函数瞬间完成,对于Fortran却没有这种感觉!!!
作者: vvt    时间: 2019-5-26 22:17
那你就用matlab呗
作者: SongAngel    时间: 2019-5-26 22:20
一言难尽啊
作者: vvt    时间: 2019-5-26 22:27
感觉慢,你开优化了没?
作者: SongAngel    时间: 2019-5-27 10:22
vvt 发表于 2019-5-26 22:27
感觉慢,你开优化了没?

主要是嵌套的循环太多了,每一层都很大,MATLAB直接就挂掉了,Fortran相对与MATLAB已经提高了很多倍,但是实际消耗的时间还是较长,正在考虑如何从算法上进行改进来解决这个问题。
你说的优化具体是指什么,编译器所有的配置应该都是默认的,没有进行专门的调整,请指教
作者: vvt    时间: 2019-5-27 10:44
什么叫开优化?
http://bbs.fcode.cn/thread-1984-1-1.html
这个帖子里才告诉过你。
作者: weixing1531    时间: 2019-5-27 11:12
本帖最后由 weixing1531 于 2019-5-27 11:51 编辑

excel中match函数      VBA中application.match函数




作者: SongAngel    时间: 2019-5-27 11:41
vvt 发表于 2019-5-27 10:44
什么叫开优化?
http://bbs.fcode.cn/thread-1984-1-1.html
这个帖子里才告诉过你。

不好意思,我以为还有其他的优化配置。
你之前说的那个试过了,没有什么提高,
作者: weixing1531    时间: 2019-5-31 01:05
findloc函数可以实现
作者: vvt    时间: 2019-5-31 08:01
findloc 也只能搜索第一个,不能搜索全部
作者: lookbook    时间: 2019-6-26 22:53
用where算不算勉强实现?




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2