Re: [問題] 矩陣輸出加逗號的問題

看板Fortran作者 (挨)時間12年前 (2012/02/08 16:38), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串2/2 (看更多)
我相信這些在彭國倫的書上都有寫,沒書的話,GOOGLE應該也很多, 關鍵字試試"格式化輸出",所以也沒啥好解釋了 而且其實我不太清楚一個矩陣你到底是要輸出成怎樣的型式 所以我直接給一段程式碼,拿去編譯執行,自己研究一下輸出結果 我想應該就大概知道怎麼運用格式化輸出了,其他的就是要看自己是不是能靈活運用 PROGRAM main IMPLICIT NONE INTEGER*4::A(3,3) A(1,:)=1 A(2,:)=2 A(3,:)=3 WRITE(*,*) "WRITE(*,*) A 得到" WRITE(*,*) A WRITE(*,*) "WRITE(*,""(3(I1,' '),/)"") A 得到" WRITE(*,"(3(I1,' '),/)") A WRITE(*,*) "WRITE(*,""(3(I1,' '),/)"") TRANSPOSE(A) 得到" WRITE(*,"(3(I1,' '),/)") TRANSPOSE(A) WRITE(*,*) "WRITE(*,""(3(I1,','),/)"") TRANSPOSE(A) 得到" WRITE(*,"(3(I1,','),/)") TRANSPOSE(A) WRITE(*,*) "WRITE(*,""(2(I1,','),I1,/)"") TRANSPOSE(A) 得到" WRITE(*,"(2(I1,','),I1,/)") TRANSPOSE(A) END PROGRAM main ※ 引述《tonk6Vs (一樹)》之銘言: : 各位前輩好 : 我最近在做Sutton-Chen potential的Minima : 那我是用Hessian matrix來確定是不是為Minima : 確定方法是去求得matrix的eigenvalue : eigenvalue都為正就是對的Minima : 在小系統還好 : 大系統我用Jacobi去跑時間花很久 : 所以想說用Mathemetica會不會比較快 我沒用過Mathemetica,不太曉得Mathemetica怎樣,我一直都只用MATLAB跟FORTRAN 純粹計算的東西,基本上MATLAB要比FORTRAN快還頗困難的,我的經驗是這樣... 畢竟MATLAB應該算是直譯式語言,FORTRAN是編譯式,兩者的用途取向本來就不太相同 尤其MATLAB好像還跟虛擬碼牽扯上一些關係,程式碼疑似需要做二次翻譯 拿C來跟FORTRAN比較速度還比較合理一些 經驗中,純粹計算的程式,如果FORTRAN寫的程式效率比較差,通常都是自己的問題 做了錯誤或演算法不對等的比較、或是編譯參數亂設之類的...等等自己的問題 所以如果Mathemetica跟MATLAB是差不多的東西,我不認為Mathemetica會比較快 不過你可以試試,畢竟我也沒用過Mathemetica : 但是他需要像這樣的INPUT: : Eigenvalue[{{1,1},{1,1}] : 就是矩陣的各元素要用","分開 : 那我現在是可以輸出像這樣 : 1 1 1.... : 2 2 2.... : 3 3 3.... : 這種用空格隔開的矩陣 : 請問各位前輩要怎麼寫 : 能讓上面的矩陣Read完然後輸出像這樣 : 1, 1, 1,.... : 2, 2, 2,.... : 3, 3, 3,.... : 的方式 : 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.218.94

02/08 20:17, , 1F
也可以用advance='no'令輸出不換行,先寫前面的數字+逗號
02/08 20:17, 1F

02/09 17:09, , 2F
謝謝
02/09 17:09, 2F
文章代碼(AID): #1FCZI3zO (Fortran)
討論串 (同標題文章)
文章代碼(AID): #1FCZI3zO (Fortran)