Re: [問題] 讀取兩筆資料 相乘 再輸出
※ 引述《shockbon (bonbon)》之銘言:
: 小弟是fortran初學者
: 想請教高手一些問題
: 我想要將兩筆資料作相乘如
: DATA1 DATA2
: a b a d
: 0 0.1 0 2
: 0.0625 0.2 0.0625 4
: 0.1250 0.3 0.1250 6
: 0.1875 0.4 0.1875 8
: 0.25 0.5 0.25 10
: . . . .
: . . . .
: . . . .
: . . . .
: 類推
: 最後輸出的結果
: DATA3
: a b*d
: 0 0.1*2
: 0.0625 0.2*4
: 0.1250 0.3*6
: 0.1875 0.4*8
: 0.25 0.5*10
: . .
: . .
: . .
: . .
: 目前想到的方法可能是用do迴圈作
: 不知道各位高手有沒有別的想法
: 可以讓小弟參考
: 附上目前程式碼(有錯)
: program resultdate3
: implicit none
: integer i
: real a,b,c,d
: integer datanumbers=5857 !全部資料點
: type(datanumber) :: da(datanumbers)
: open(unit=11,file='data1.dat',status='old')
: open(unit=22,file='data2.dat',status='old')
: open(unit=33,file='result.dat',status='unknow')
: do i=1,datanumber
: read(11,*) da(i)%a,da(i)%b
: read(22,*) da(i)%c,da(i)%d
: write(33,*) a,b*d
: end do
: stop
: end
我猜你第一行的文字沒讀到 所以會錯?
最簡單的作法就是:讀一行,算一行,寫一行。
原則上你的想法是對了,只不過是程式內文出了點錯誤。
建議:
1. b*d 結果請先計算,接著再寫入檔案。
2. 寫入檔案建議設定好format,不然看起來會很亂
3. 宣告要完整,其實不必用矩陣就可以讀完整個檔案。
以下程式碼請自行改寫(不用do 也可以迴圈)
10 read(11,*,end=20)
goto 10
20 continue
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.228.144.98
推
12/23 21:55, , 1F
12/23 21:55, 1F
→
12/23 21:58, , 2F
12/23 21:58, 2F
推
12/23 22:09, , 3F
12/23 22:09, 3F
→
12/23 22:11, , 4F
12/23 22:11, 4F
推
12/23 22:30, , 5F
12/23 22:30, 5F
→
12/24 09:53, , 6F
12/24 09:53, 6F
推
12/24 10:52, , 7F
12/24 10:52, 7F
推
12/24 15:00, , 8F
12/24 15:00, 8F
→
12/24 15:00, , 9F
12/24 15:00, 9F
→
12/24 23:08, , 10F
12/24 23:08, 10F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Fortran 近期熱門文章
PTT數位生活區 即時熱門文章