- ベストアンサー
MATLABでデータ処理に困っています。
- MATLABでデータの処理方法について困っています。データは数字が並んでおり、特定の部分を取り出す方法が知りたいです。
- データ処理をMATLABで行う際に困っており、特定の部分を取り出す方法を教えてください。
- MATLAB初心者ですが、データ処理において特定の部分を取り出す方法が分かりません。詳しい手順を教えていただけますか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず、以下のようなMファイルを作成していただけば ファイル変換可能かと思われます。 現在の私は実行環境を持っておらず、全く確認検証を行って おりませんので、ダミーデータでご確認ください。 また、コメントは省略させていただいておりますので、 間違い,誤処理,ご不明な点等がありましたら、ご指摘ください。 function fileConverter( inputFilename, outputFilename ) inputID = fopen( inputFilename, 'rt' ); outputID = fopen( outputFilename, 'wt' ); inputHeader = fgetl( inputID ); x = inputHeader(3:4); y = inputHeader(5:6); while ~feof( inputID ); inputLineData = fgetl( inputID ); for pointer = 2:3:lenght(inputLineData); z = inputLineData( pointer : pointer + 3 - 1 ); fprintf( outputID, '%s %s %s', x, y, z ); end end fclose( inputID ); fclose( outputID ); なお、投稿でインデントを有効にするため行頭の半角スペースを 全角スペースに変換していますので、Copy&Pasteした場合は、 スペースを逆変換してください。
その他の回答 (1)
- HarukaV49
- ベストアンサー率53% (48/89)
今はMATLABは使用しておらず使える環境にも無いのですが、 MATLABの質問には解答が付きにくいようですので、 こんな私がとりあえずアドバイスさせていただきます。 まず、 >データの内容はこのような数字が並んでいます。 >522344 >527870010500115000980009800079000780008000101000 これは、ファイルにテキストデータがあるという意味でしょうか? ファイル入力の方法はお分かりでしょうか? そして、 >...数字の後に取り出したいのです。 >23 44 787 >23 44 001 >23 44 050 これは、セル配列を作成するのかマトリックス変数に入力するのか、 ファイル出力したいという意味なのかを明らかにしていただければと 思います。
補足
もう諦め掛けていたので本当にありがとうございます! はい、そうです。 データはファイルにテキストデータがあるという意味です。 ファイルの入力方法とはこの事でしょうか? fname1='523800.MEM'; fname2='523800.txt'; fid1=fopen(fname1,'r') fid2=fopen(fname2,'w') 2つ目の問いですが、ファイル出力したいという意味です。 >23 44 787 >23 44 001 >23 44 050 これは緯度 経度 標高のことなんです。 理由があって標高のみのデータを、緯度経度標高の3次メッシュのデータに直したいのです。 頓珍漢な返答をしてしまっていたらすみません。 どうかよろしくお願いします。
お礼
御礼が遅くなってしまい申し訳ありませんでした! これを参考にして頑張ってやってみます。 わざわざ、こんなに丁寧な回答をしていただき本当にありがとうございました。