こんにちは、MATLAB初心者の者です。
あるデータの処理をしなくてはならないのですがどのようにプログラムを作ってよいか分からず困っています。
データの内容はこのような数字が並んでいます。
522344
527870010500115000980009800079000780008000101000
529970009800119001040008900083000910008800101000
523800003010700120001120010000090001010010700117
・・・・・・
これを1行目の3~4桁、5~6桁を取り出し、2行目の3~5桁、6~8桁、9~11桁・・・と3桁づつを1行目から取り出した数字の後に取り出したいのです。
23 44 787
23 44 001
23 44 050
23 44 011
23 44 500
23 44 098
・・・・・・
3行目以降も同じ方法です。
23 44 997
23 44 000
23 44 980
23 44 011
23 44 900
・・・・・・
説明が下手ですみません。
他の言語で作成した方が早いとは思いますし、こんな簡単なことも出来ないのに使うなとお叱りを受けそうなのですがMATLABでやらなければならない事情があり、困ってしまいこちらに質問する事にしました。
どうかよろしくお願いします。
No.1
- 回答日時:
今は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次メッシュのデータに直したいのです。
頓珍漢な返答をしてしまっていたらすみません。
どうかよろしくお願いします。
No.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した場合は、
スペースを逆変換してください。
御礼が遅くなってしまい申し訳ありませんでした!
これを参考にして頑張ってやってみます。
わざわざ、こんなに丁寧な回答をしていただき本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッファとは何ですか
-
C言語でBMPファイルの内容を表...
-
ページ読み込み時に自動的にsub...
-
BMP 仕様
-
EOF
-
エクセルVBA 2千万行のCSVファ...
-
エラー:ストリームの終わりを...
-
MATLABのプログラムでのデータ...
-
3gp、mp4のファイル情報取得
-
VBScriptでバイナリファイルア...
-
c言語でのファイルからのデータ...
-
入力ファイルをバイナリにする利点
-
EXCEL VBAでテキストファイルの...
-
C言語初心者の質問失礼します。
-
コマンド(例えばls)の出力結果...
-
フルパスから最後のディレクト...
-
FTPでputすると空ファイルが出...
-
どんなプログラムを書いても指...
-
Access クエリ実行が急に非常に...
-
ファイルやディレクトリの存在...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッファとは何ですか
-
Microsoft VBAで2GBを超えるフ...
-
ページ読み込み時に自動的にsub...
-
EOF
-
EXCEL VBAでテキストファイルの...
-
エクセルVBA 2千万行のCSVファ...
-
【python】Excelファイルを読み...
-
VBA バイナリ―から文字列にす...
-
入力ファイルをバイナリにする利点
-
バイナリエディタのつかいかた
-
エラー:ストリームの終わりを...
-
24ビットのWaveデータの中身に...
-
C言語とシリアル通信の送受信...
-
テキストデータをSQLServerに取...
-
バイナリーデータの一部データ...
-
削除したファイルの復旧、およ...
-
テキストデータをバイナリデー...
-
バイナリファイルの検索について
-
【Teraterm】filewritelnについて
-
PHPのfgetcsvの処理容量について
おすすめ情報