作者callmei (挨)
看板Fortran
标题Re: [问题] 矩阵输出加逗号的问题
时间Wed Feb 8 16:38:25 2012
我相信这些在彭国伦的书上都有写,没书的话,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
1F:推 terryys:也可以用advance='no'令输出不换行,先写前面的数字+逗号 02/08 20:17
2F:→ tonk6Vs:谢谢 02/09 17:09