看板 Fortran 關於我們 聯絡資訊
我嘗試使用terryys版友的建議寫出來了 在這邊野人獻曝一下 program main implicit none integer n,i character row real,allocatable:: a(:,:) n=0 !先讀取檔案判斷矩陣階數 open (11,file='matrix.txt',status='old') do while(.not. eof(11)) read(11,*) row n=n+1 enddo allocate ( a(n,n) ) rewind(11) !將讀取位置回到檔案開頭 do i=1,n !將檔案讀進矩陣中 read(11,*) a(:,i) 11 format (I3) enddo write(*,*)'The input matrix a =' !先在螢幕上print出讀取的檔案狀況 write(*,*) a !以確認讀取無誤 end 不過老實說我對於a(:,i)的意思還並不是很了解 剛剛翻了一下書也沒找到這個指令的詳細說明 還是請高手們給點方向吧! 感謝 再次跟提供意見的板友們致謝^^ -- 正妹!!! 幹!跟你說過要先看看你自己的臉... \ / ○ ︵ \○ ╱/| . . ﹎ ﹍﹍ ╱ ̄﹚╱> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.227.128.150 ※ 編輯: openfire 來自: 61.227.128.150 (08/11 21:39)
laa7352:a(:,i)的意是指第一個維度1~n,而第二個維度是i的 08/11 22:01
laa7352:所有a矩陣的元素 08/11 22:01
laa7352:明白的說 假設n=3的話 a(:,i)的用法 08/11 22:02
laa7352:就等於a(1,i),a(2,i),a(3,i) 08/11 22:03
openfire:也就是說先跑i的迴圈 看i的範圍來決定n的大小摟? 08/12 11:55
laa7352:因為你這樣宣告allocate(a(n:n)) 08/13 10:08
laa7352:所以這樣寫read(11,*)a(1,i),a(2,i),a(3,i) 08/13 10:09
laa7352:會等於read(11,*)a(:,i) 08/13 10:09
laa7352:裡面的冒號代表的是1~n 08/13 10:10