fortranプログラマです。
Matlabはライブラリが豊富なので、使い始めました。
fortranのwriteは書式指定や繰り返し等便利なのですが、Matlabの書式指定した入出力方法が良くわかりません。
fortranのwriteやread, c言語のprintfでやれることをどのように実現していますか?

 채택된 답변

Hernia Baby
Hernia Baby 2021년 7월 30일

1 개 추천

基本はドキュメントを見ていただくとやりたいことが出てきます。
Google等で「やりたいこと matlab」がオススメです
操作に慣れたい場合はMATLAB入門で学習することをお勧めします(無料)。
------------------------
ちなみに
x = 1
x = 1
y = "Hello World"
y = "Hello World"
といったようにセミコロン( ; )をつけない場合はそのまま出力を見ることができます。

댓글 수: 6

Tomohisa Kato
Tomohisa Kato 2021년 7월 30일
ご回答ありがとうございます。単純な使い方ではなくて、例えば下記のようなパターンです。
fortran
write(*,'(f8,2,",",15(",",E12.4))") f, (a(i),i=1,15)
これは、書式指定でfとa(1)~a(15)を固定小数点で1個、浮動小数点で15個出力するという指定です。
C言語だとprintfで(少し面倒ですが)同様のことができます。
matlabだとどのように書くのが良いのでしょうか。
fortranやC言語との対照表が載っている書籍あると助かります。
Hernia Baby
Hernia Baby 2021년 7월 31일
頂いた例で考えると fprintfsprintf 等が該当すると思います
試しに fprintf での例を抜粋します
A1 = [9.9, 9900];
A2 = [8.8, 7.7 ; ...
8800, 7700];
formatSpec = 'X is %4.2f meters or %8.3f mm\n';
fprintf(formatSpec,A1,A2)
X is 9.90 meters or 9900.000 mm X is 8.80 meters or 8800.000 mm X is 7.70 meters or 7700.000 mm
このときformatSpec内にて各ベクトルに対応する書式演算子を指定してください
ドキュメントのformatSpecにて詳細書かれております
対照表は残念ながら見つけることができませんでした
書式設定などは こちら を参考にされるとよいかなと思います
Megumi Fukuda
Megumi Fukuda 2021년 7월 31일
@Hernia Babyさんのご回答通り、Googleにて 「MATLAB(やりたいことを記述)」、または「Fortran to MATLAB (やりたいことを記述)」と探していただくと、参考になる情報にたどり着きやすいと思います。
またFortranからMATLABを呼び出す機能もありますので、必要に応じてこちらのご利用もご検討いただけると良いかと思います。
https://jp.mathworks.com/help/matlab/matlab-api-for-fortran.html
Tomohisa Kato
Tomohisa Kato 2021년 7월 31일
情報ありがとうございます。C言語に近そうですね。試してみます。
Tomohisa Kato
Tomohisa Kato 2021년 7월 31일
FortranからMATLABを呼び出す機能は興味深いです。gccに対応されていますが、将来的にgfortranに対応されたら、使ってみたいです。fortranやsed、awkでプログラミングして、bash等のスクリプトでまとめると、仕事が非常に捗るので、古いやり方ですが、いまだに、この方法が一番効率が良いです。Msys2(MinGW64)を使っています。今回matlabにfortranでは有料の不等式制約の最小二乗法があったので、使ってみました。今後もメジャーなmatlabの方が進歩していくと思いますので、是非gfortran(mingw)への対応をご検討いただけるとありがたいです。また、仕事(会社)ではmatlabコンパイラーも使用可能と思いますので、調べてみます。色々ありがとうございました。
Tomohisa Kato
Tomohisa Kato 2021년 8월 2일
詳細なご回答色々ありがとうございました。適材適所で対応できるよう、勉強していきます。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Fortran からの MATLAB の呼び出し에 대해 자세히 알아보기

질문:

2021년 7월 30일

댓글:

2021년 8월 2일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!