【发布时间】:2017-09-29 20:52:55
【问题描述】:
我正在尝试编写 Fortran 95 代码来模仿我在 MATLAB 中所做的事情,但我很难访问数组索引。代码比下面显示的要复杂得多,但这是要点。我宁愿避免做循环。
例如--> Matlab 命令。假设 a,b,c 大小相同。
indx=find(a<0); % find all negative values of "a"
b(indx)=30.; % set those same elements in different array "b" to 30.
c(indx)=b(indx)./a(indx)
etc.
etc.
如何存储和使用“a”数组中的这些索引,并在 fortran 中对其他数组中的相同索引进行操作?
【问题讨论】:
-
它很接近,但它返回一个逻辑数组,它对于生成应用于其他数组的索引没有用处。
-
您使用
pack和逻辑掩码为您提供充当向量下标的索引数组,或者使用带有掩码的where语句/构造。