実現したいこと
ここに実現したいことを箇条書きで書いてください。
- matlabでn行10列の要素を持つtxtファイルを10n行2列の値に変換させるプログラムを作成します。まずは2行10列でテストを行っているのですが、2列目の値が正しく格納することが出来ず、躓いています。よろしければお力添えいただきたいです。
前提
1.190E-21 1.706E-21 1.764E-21 1.726E-21 2.042E-21 1.757E-21 9.137E-22 1.260E-21 1.930E-21 1.173E-21
1.811E-21 1.957E-21 1.744E-21 1.539E-21 1.845E-21 1.634E-21 1.409E-21 1.448E-21 1.342E-21 1.911E-21
まずは2行10列のファイルを20行n列に変換させるプログラムを作成しています。
変換した配列の1列目は600から始めて0.11刻みで増やし、2列目は、元のtxtファイルの要素を1つずつ格納していきます。
発生している問題・エラーメッセージ
10行目以降のデータが表示されないことと、2列目の値が格納できずいます。
> cross_sction_test 変換後の配列: 600.0000 0.0000 600.1100 0.0000 600.2200 0.0000 600.3300 0.0000 600.4400 0.0000 600.5500 0.0000 600.6600 0.0000 600.7700 0.0000 600.8800 0.0000 600.9900 0.0000
該当のソースコード
matlab
1filename = 'cross_test.txt'; % ファイル名を適切なものに変更 2fid = fopen(filename, 'r'); 3data = fscanf(fid, '%f'); 4fclose(fid); 5 6% データをn行2列の配列に変換 7num_rows = 2; % 行数 8num_columns = length(data) / num_rows; % 列数 9data_array = reshape(data, num_rows, num_columns)'; 10 11% 1列目の変換 12data_array(:, 1) = 600 + (0:num_columns-1) * 0.11; 13 14% 結果を表示 15disp('変換後の配列:'); 16disp(data_array); 17
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
> まずは2行10列のファイルを20行n列に変換させるプログラムを作成しています。
の「20行n列」は、「20行2列」でしょうか?
> 2列目は、元のtxtファイルの要素を1つずつ格納
だけだと、
> 1.190E-21 1.706E-21 1.764E-21 1.726E-21 2.042E-21 1.757E-21 9.137E-22 1.260E-21 1.930E-21 1.173E-21
1.811E-21 1.957E-21 1.744E-21 1.539E-21 1.845E-21 1.634E-21 1.409E-21 1.448E-21 1.342E-21 1.911E-21
をどのように並べたいのかが、分かりません
一つ目が「1.190E-21」だとして、二つ目は「1.706E-21」と「1.811E-21」のどちらでしょうか?
上記データから正しく変換された(1列目も含む)正解データを質問に追記したらいいと思います
解決することが出来ました。
ans =
1.0e-20 *
0.1190
0.1706
0.1764
0.1726
0.2042
0.1757
0.0914
0.1260
0.1930
0.1173
0.1811
0.1957
0.1744
0.1539
0.1845
0.1634
0.1409
0.1448
0.1342
0.1911
格納順は上記の順番で考えていました。ありがとうございました。
> 解決することが出来ました。
それでしたら、質問者さんが自分で回答を書いて、「自己解決」にしてください
回答1件
あなたの回答
tips
プレビュー