Re: [問題] Fortran可以矩陣中放進矩陣嗎?

作者: PTT0207445 (我是鄉民)   2016-07-11 18:20:42
可以宣告自訂型態,像這樣
A是一個3x3的矩陣,每個矩陣元都是layer這種變數,
layer是自訂的型態,p是宣告成layer型態的變數,
所以p%n(:)就是長度為3的一維陣列。
type layer
integer,dimension(3) :: n
end type layer
type(layer),dimension(3,3) :: A
type(layer) :: p
p%n(1)=100
p%n(2)=200
p%n(3)=300
A(1,1)%n=(/0,0,-1/)
A(1,2)%n=(/0,0,-2/)
A(1,3)%n=(/0,0,-3/)
A(2,1)%n=(/0,1,-2/)
A(2,2)%n=(/0,1,-3/)
A(2,3)%n=(/0,1,-4/)
A(3,1)%n=(/1,0,-3/)
A(3,2)%n=(/1,0,-4/)
A(3,3)%n=(/1,0,-5/)
但是好像直接宣告一個3x3x3的陣列就可以了。
integer,dimension(3,3,3) :: B
integer :: i,j
do j=1,3
do i=1,3
B(:,i,j)=A(i,j)%n(:)
enddo
enddo
※ 引述《etu4315 (成大海龍王)》之銘言:
: 各位前輩好
: 小弟fortran新手
: 在處理網格時碰到了問題
: 如照片所示
: http://imgur.com/Xwwg2MC
: 我本來有一個計算完的9*3矩陣
: 為了運算公式方便我需要壓縮成3*3的矩陣
: 即按照如中的邏輯分層放進去
: 有翻過書都沒找到矩陣中放進矩陣的寫法
: 還請版上的高手大大們幫小弟解惑
: 謝謝
作者: etu4315 (成大海龍王)   2016-07-13 14:18:00
感謝大大教學 已解決

Links booklink

Contact Us: admin [ a t ] ucptt.com