[問題] 整理矩陣問題(數字重複)

看板Fortran作者 (微積=危機)時間11年前 (2013/04/23 18:39), 編輯推噓2(205)
留言7則, 3人參與, 最新討論串1/1
大家好! 我有個矩陣如下 0 1 1 1 0 1 1 2 0 1 1 3 0 1 1 1 0 1 1 2 0 1 1 3 0 2 1 1 0 2 1 2 0 2 1 3 0 2 1 1 0 2 1 2 0 2 1 3 ...... .... .. 由上述矩陣 會有重複輸入的問題 所以我想另一個新矩陣存成 0 1 1 1 0 1 1 2 0 1 1 3 0 2 1 1 0 2 1 2 ....... 的方式,由於他的重複是會亂跳 所以我目前想法是用 設原本DATA為A矩陣 B為空矩陣 利用A的每一列與B的每一列作比較 如果不一樣就輸入 一樣就跳過 但目前一直處於無限迴圈的情況 附上code ck=0d0 do i=1,24 write(*,*)'i=',i do k=1,ck+1 write(*,*)'k=',k if ((b(1,i) .EQ. c(1,k)) . AND . (b(2,i) .EQ. c(2,k)) . AND . ( !b(3,i) .EQ. c(3,k))) then else ck=ck+1 c(1,ck)=b(1,i) c(2,ck)=b(2,i) c(3,ck)=b(3,i) c(4,ck)=b(4,i) write(*,*)c(1,ck) write(*,*)c(2,ck) write(*,*)c(3,ck) write(*,*)'end' end if enddo enddo 前幾次輸出都沒問題....後面就掛了 -- 子欲養而親不待 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.94.67

04/23 20:29, , 1F
看不太懂你得說明,CODE裡面的C和B代表啥??
04/23 20:29, 1F

04/23 20:48, , 2F
C是指新矩陣 B是指舊矩陣也就是原始值
04/23 20:48, 2F

04/23 21:02, , 3F
哪你就不能用else,要用elseif把例外的條件設定好
04/23 21:02, 3F

04/23 21:04, , 4F
只用else這樣會把不成立都做一次就會變無限哩
04/23 21:04, 4F

04/23 22:28, , 5F
加個excit
04/23 22:28, 5F

04/24 00:37, , 6F
後來稍微修改後 用exit!!! 就OK! 原本幾百萬行瞬間少很多!!
04/24 00:37, 6F

04/24 00:37, , 7F
謝謝各位!!
04/24 00:37, 7F
文章代碼(AID): #1HTcJoQ- (Fortran)
文章代碼(AID): #1HTcJoQ- (Fortran)