f***t 发帖数: 2247 | 1 各位大仙,请出手相助,多谢!
1,必须使用fortran,不能使用其他语言,不要问我为啥,问大老板去 :(
2,问题:从一个很大的数组中挑选出符合条件的数值,筛选的条件也很多,为了表达
清楚,简化一下问题如下:
假设:数组A =(0, 1, 2,3,4,5,0, 1,2,3,4,5)
筛选条件1:数组B=(5,-6,-7,8,-9)
筛选条件2:数组C=(-11,12,-13)
2.1:各个筛选条件是独立的,这些条件之间没有关联,并且数组的长度是不一样的。
2.2:数组B中有三个负值,分别为B(2),B(3)和B(5)
2.3:数组C中有两个负值,分别为B(1)和B(3)
2.4:数组B和数组C的共同点就是在第三个位置上都是负数,那么请把数组A中的数值3挑
选出来,即输出A(4)和A(10)
不知道我表达清楚了没有,不是搞CS的,只好上来求救,在线等,灌水paper用,先谢
谢了 | B********u 发帖数: 1 | 2 1. 同时遍历B,C ,里面同为负数的index放到indexset里面
2. 遍历A, 把indexset里面对应的A的元素提出来 | f***t 发帖数: 2247 | 3 大侠!麻烦您给写一个fortran的例子,我对编程不灵光啊,先谢谢了!
【在 B********u 的大作中提到】 : 1. 同时遍历B,C ,里面同为负数的index放到indexset里面 : 2. 遍历A, 把indexset里面对应的A的元素提出来
| f***t 发帖数: 2247 | 4 do i = 1, 12 */数组A
do j = 1, 5 */数组B
do k = 1, 3 */数组C
if (B(j).lt.0) then
if (C(k).lt.0) then
write(*,*) A(i) /这里到底怎么才能和j和k联系起来啊?
else
endif
else
endif
enddo
enddo
enddo
【在 B********u 的大作中提到】 : 1. 同时遍历B,C ,里面同为负数的index放到indexset里面 : 2. 遍历A, 把indexset里面对应的A的元素提出来
| B********u 发帖数: 1 | 5 恁是没看懂!
【在 f***t 的大作中提到】 : do i = 1, 12 */数组A : do j = 1, 5 */数组B : do k = 1, 3 */数组C : if (B(j).lt.0) then : if (C(k).lt.0) then : write(*,*) A(i) /这里到底怎么才能和j和k联系起来啊? : else : endif : else : endif
| f***t 发帖数: 2247 | 6 我这个想法可能本身就是错的。你不用考虑这个,就是根据上边说的问题,用您自己的
想法,给我一个fortran的例子,可以吗?谢谢了。
【在 B********u 的大作中提到】 : 恁是没看懂!
| H********g 发帖数: 43926 | 7 为啥非要用fortran? 数学系都可以用python了吧
【在 f***t 的大作中提到】 : 各位大仙,请出手相助,多谢! : 1,必须使用fortran,不能使用其他语言,不要问我为啥,问大老板去 :( : 2,问题:从一个很大的数组中挑选出符合条件的数值,筛选的条件也很多,为了表达 : 清楚,简化一下问题如下: : 假设:数组A =(0, 1, 2,3,4,5,0, 1,2,3,4,5) : 筛选条件1:数组B=(5,-6,-7,8,-9) : 筛选条件2:数组C=(-11,12,-13) : 2.1:各个筛选条件是独立的,这些条件之间没有关联,并且数组的长度是不一样的。 : 2.2:数组B中有三个负值,分别为B(2),B(3)和B(5) : 2.3:数组C中有两个负值,分别为B(1)和B(3)
| H********g 发帖数: 43926 | 8 看不懂筛选条件 BC和A什么意思?
【在 f***t 的大作中提到】 : 各位大仙,请出手相助,多谢! : 1,必须使用fortran,不能使用其他语言,不要问我为啥,问大老板去 :( : 2,问题:从一个很大的数组中挑选出符合条件的数值,筛选的条件也很多,为了表达 : 清楚,简化一下问题如下: : 假设:数组A =(0, 1, 2,3,4,5,0, 1,2,3,4,5) : 筛选条件1:数组B=(5,-6,-7,8,-9) : 筛选条件2:数组C=(-11,12,-13) : 2.1:各个筛选条件是独立的,这些条件之间没有关联,并且数组的长度是不一样的。 : 2.2:数组B中有三个负值,分别为B(2),B(3)和B(5) : 2.3:数组C中有两个负值,分别为B(1)和B(3)
| H********g 发帖数: 43926 | 9 因为BC 第三个都是负值就把A里的3都拿出来?那不就是先比较BC找到想要的数字 然
后把A过一遍 数字对了就存序号吗? | H********g 发帖数: 43926 | 10 fortran77很简单的 看几小时就会了 关键是要自己主动去学 不要觉得很难
【在 f***t 的大作中提到】 : 大侠!麻烦您给写一个fortran的例子,我对编程不灵光啊,先谢谢了!
| z***i 发帖数: 8285 | 11 这么怀旧的老板叔喜欢。你告诉他你用awk写,他肯定同意
下面是六年前给别人举的一个例子,你改改 && 前后的条件就能用
创建文件夹 C:/Data/20150202,把所有原始测试结果放进去,
比如7800个*.out文件
在这里下载并安装Cygwin B20
https://www3.cs.stonybrook.edu/~alee/g++/g++.html
把下面两行########################里的东西存成文件"a2.awk"
放到C:/Data/20150202里面
########################
BEGIN {
{fileno=0}
{printf " #|%12s|%12s|%12s|%22s\n","Freq","Mag","Ph","File"}
}
{ if (FNR==1) {
{FileNo=FileNo+1 }
}
}
/30./,/10;/ {
if ($2<=0. && $3>-50.) {
a1=$1
a4=$4
a5=$5
{printf "%4i|",FileNo}
{printf "%12f|%12f|%12f|%22s\n",a1,a4,a5,FILENAME}
}
}
########################
把这个拷贝到桌面 C:\cygnus\cygwin-b20\cygnus.bat
双击点开,然后在$符后输入(不包括$符自己):
$mount
$cd C:/Data/20150202
$awk -f a2.awk *.out>Results_a2.txt
(这个*.out你要根据实际的文件后缀改)
Results_a2.txt就是你想要的结果
【在 f***t 的大作中提到】 : 我这个想法可能本身就是错的。你不用考虑这个,就是根据上边说的问题,用您自己的 : 想法,给我一个fortran的例子,可以吗?谢谢了。
| J*******d 发帖数: 12 | 12 如果你会任何别的语言,这里有个办法
用那个你会的写好程序得到结果
然后用fortran包装一下:
用fortran 写着程序的code
用fortran,调用系统命令,运行你上面写的那个
done
【在 f***t 的大作中提到】 : 各位大仙,请出手相助,多谢! : 1,必须使用fortran,不能使用其他语言,不要问我为啥,问大老板去 :( : 2,问题:从一个很大的数组中挑选出符合条件的数值,筛选的条件也很多,为了表达 : 清楚,简化一下问题如下: : 假设:数组A =(0, 1, 2,3,4,5,0, 1,2,3,4,5) : 筛选条件1:数组B=(5,-6,-7,8,-9) : 筛选条件2:数组C=(-11,12,-13) : 2.1:各个筛选条件是独立的,这些条件之间没有关联,并且数组的长度是不一样的。 : 2.2:数组B中有三个负值,分别为B(2),B(3)和B(5) : 2.3:数组C中有两个负值,分别为B(1)和B(3)
|
|