作者openfire (疲憊...)
看板Fortran
標題Re: [問題] 未知大小矩陣讀取的問題
時間Tue Aug 11 21:37:29 2009
我嘗試使用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)
1F:推 laa7352:a(:,i)的意是指第一個維度1~n,而第二個維度是i的 08/11 22:01
2F:→ laa7352:所有a矩陣的元素 08/11 22:01
3F:→ laa7352:明白的說 假設n=3的話 a(:,i)的用法 08/11 22:02
4F:→ laa7352:就等於a(1,i),a(2,i),a(3,i) 08/11 22:03
5F:→ openfire:也就是說先跑i的迴圈 看i的範圍來決定n的大小摟? 08/12 11:55
6F:推 laa7352:因為你這樣宣告allocate(a(n:n)) 08/13 10:08
7F:→ laa7352:所以這樣寫read(11,*)a(1,i),a(2,i),a(3,i) 08/13 10:09
8F:→ laa7352:會等於read(11,*)a(:,i) 08/13 10:09
9F:→ laa7352:裡面的冒號代表的是1~n 08/13 10:10