[問題] 一維矩陣資料 各元素比大小
現在我有的資料如下:
12.1000000000000
11.5666666666667
9.40000000000000
10.0333333333333
.
.
.
11.7333333333333
共110筆數據,存成.txt檔,欲設計一個可計算Kendall係數的程式。
Kendall 相關係數的計算方法如下:
1. 將n組資料對(x,y),按x值的大小排列,使x1為最小、xn為最大,排列結果為( x1, y1
), ( x2 , y2 ), ..., ( xn , yn )。其中,x 為自變數或影響變數,y 是應變數。
2. 檢視所有的n(n-1)/2 個yi 與 yj 的比較,計算當序號i > j 時 yi > yj 的個數
P,以及 yi < yj 的個數M,令S = P-M。
我自己寫的code如下:
program project01
real,allocatable:: A(:)
allocate( A(110) ); A=0.
open(10,file='mtempnorth.txt')
do i=1,110
read(10,*) A(i)
end do
close(10)
do i=1,109
if(A(i+1)>A(i))then
write(*,*)'p',i
else if(A(i+1)==A(i))then
write(*,*)i
else
write(*,*)'M',i
end if
end do
stop
end
但這樣子只能拿x1比一輪,我想要第二輪再拿x2與x3.x4...x110比大小,第三輪拿x3與
x4.x5...x110比大小,依此類推!
目前我只有想到寫109個do loop暴力法求解,有沒有更快的方法比完109輪且快速得到P與M
的個數?
小弟fortran新手QQ,八月才開始看彭國倫的書自學!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.190.65
※ 文章網址: https://www.ptt.cc/bbs/Fortran/M.1473399092.A.E09.html
※ 編輯: e84011095 (140.112.190.65), 09/09/2016 13:34:53
※ 編輯: e84011095 (140.112.190.65), 09/09/2016 14:23:13
推
09/09 14:45, , 1F
09/09 14:45, 1F
已修改,還是run time error
※ 編輯: e84011095 (140.112.190.65), 09/09/2016 16:06:09
推
09/09 16:14, , 2F
09/09 16:14, 2F
對齁~我好蠢...
※ 編輯: e84011095 (140.112.190.65), 09/09/2016 17:20:30
※ 編輯: e84011095 (140.112.190.65), 09/09/2016 17:24:01
→
09/10 13:25, , 3F
09/10 13:25, 3F
→
09/11 08:18, , 4F
09/11 08:18, 4F
推
09/18 02:17, , 5F
09/18 02:17, 5F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
Fortran 近期熱門文章
PTT數位生活區 即時熱門文章