
fortran初心者です。
fortranで下のようにNAが含まれたデータを読み込んで2次元配列に格納することは可能でしょうか。
1 2 3
4 NA 6
7 8 9
以下のコードで試したところ、「Fortran runtime error: Bad real number in item 2 of list input」と表示され、readできませんでした。よい方法があれば教えていただきたいです。
program openclose
implicit none
integer i,j
integer,parameter :: n=3,m=3
real,dimension(3,3) :: a
open(10,file='file.dat',status='old')
do i=1,n
read(10,*)(a(i,j),j=1,m)
end do
do i=1,n
write(*,*)(a(i,j),j=1,m)
end do
close(10)
end program openclose
No.1ベストアンサー
- 回答日時:
読み込み時に,"iostat = 変数名"を付けると,エラーのチェックができます。
とりあえず8行目で "iostat = ios" と書けばエラーは防げるのですが,
j = 2 でエラーになるので,j = 3 は実行されず,a(2, 3) 成分も値が入らなくなります。
そこで,いったん文字列の区切りとしてデータを保存し,その後1つずつ値を代入する形です。
ソースは次のような感じだと思います。
program openclose
implicit none
integer, parameter :: n = 3, m = 3
integer :: i, j, ios
character(len=128) :: token(m)
real :: a(n, m)
open(10, file = 'file.dat', status = 'old')
do i = 1, n
read(10, *) token(1 : m) ! スペース区切りで文字列として保存
do j = 1, m
! j 番目の区切りから読み込み,エラーが出たら ios /= 0 になる
read(token(j), *, iostat = ios) a(i, j)
if (ios /= 0) a(i, j) = -1.0d+00
end do
end do
do i = 1, n
write(*, *) (a(i, j), j = 1, m)
end do
close(10)
stop
end program openclose
とてもスマートな解決策で目から鱗です。"iostat = 変数名"は今後も使えそうです。とても勉強になりました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラム言語
-
画像生成AIのプロンプトの作り...
-
vba クリップボードクリアにつ...
-
自作scratch アニメの商用利用
-
REGZAに接続できない(パソコン)
-
pip --versionがエラーになる
-
数学、プログラミング、物理、...
-
Geminiフォーム 画像生成で 人...
-
OS入ってる機器のソフト・アプ...
-
Google ColaboでGUI作成
-
pythonの実行に関する質問
-
Python 3.12.2 か一番最新のパ...
-
CSVファイルの複数行削除
-
Python... 環境設定 初心者です...
-
パイソンのソースコードをChatG...
-
COPYコマンドで、最後に1文字...
-
数行削除してコピーするbatファ...
-
アルゴリズムとコードとは何で...
-
プログラミングの進学について
-
ネットワークフォルダの中身を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミングについて教えて...
-
pythonのエラーについて
-
fortranでNAのあるデータを読み...
-
【fortran77】空行を含む数値デ...
-
rubyの見えない文字
-
【ruby】flockで掛けたロックを...
-
pycharmへのpysamインストール...
-
Rubyで、外で定義した文字列をd...
-
Fortran:列数の分からないデー...
-
Excelマクロ 空白セルを無視し...
-
バッチ処理 特定の文字以降を...
-
VBAでcsvファイルもシートもあ...
-
ダブルコーテーション付きでCSV...
-
【ExcelVBA】300万件越えCSVか...
-
INPUTタグ disabledの文字色を...
-
ファイル名を変数で書きこむfwr...
-
VBAで複数のCSVからレコードセ...
-
VBA テキストボックスを選択状...
-
CSVで余計な空行が入る
-
Access VBA エラー2448について
おすすめ情報