質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

Q&A

解決済

1回答

184閲覧

matlabでn行10列のtxtファイルの要素を10n行2列の配列に変換するプログラム

bane-ririn

総合スコア4

MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

0グッド

0クリップ

投稿2023/12/19 05:11

実現したいこと

ここに実現したいことを箇条書きで書いてください。

  • 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/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jbpb0

2023/12/20 00:31

> まずは2行10列のファイルを20行n列に変換させるプログラムを作成しています。 の「20行n列」は、「20行2列」でしょうか?
jbpb0

2023/12/20 00:38

> 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列目も含む)正解データを質問に追記したらいいと思います
bane-ririn

2023/12/20 00:44

解決することが出来ました。 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 格納順は上記の順番で考えていました。ありがとうございました。
jbpb0

2023/12/20 00:52

> 解決することが出来ました。 それでしたら、質問者さんが自分で回答を書いて、「自己解決」にしてください
guest

回答1

0

自己解決

解決することが出来ました。
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
格納順は上記の順番で考えていました。ありがとうございました。

投稿2023/12/20 01:07

bane-ririn

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問