matlabでファイルの先頭から任意行までを無視して残りの行を読み込む方法

このQ&Aのポイント
  • matlabでファイルの先頭から任意行までを無視して、残りの行を読み込む方法について教えてください。
  • matlabのcsvreadやloadを使用してファイルを読み込もうとすると、文字列行と数値行のビット長が違うためエラーが発生します。先頭のX行を無視して、残りの行を読み込む方法はありませんか?
  • matlabのcsvreadの範囲指定では先頭の行数がわかっていないとできません。先頭のX行を無視して、残りの行を全部読み込むコマンドが必要です。どなたかご存知の方がいらっしゃったら教えてください。
回答を見る
  • ベストアンサー

matlab:最初のX行を無視して、残りの行全部を読み込むというコマンドが無かったでしょうか。

matlab R2006aを使用しています。ファイルの先頭行から任意行までが文字列のアスキー形式データファイルがあります。 csvreadやloadでこのファイルを読み込もうとすると、文字列行と数値行などのビット長が違うためエラーとなります。 このようなファイルを読み込むためにあるファイルの先頭から任意行までを消去して残りの数値行をメモリに読み込むというコマンドがあったのを記憶していますが、見つけることができませんでした。どなたかご存知内でしょうか。 csvreadの範囲指定で読み込むというのでは、あらかじめ範囲がわかっていないとできないので、最初のX行までは無視して、残りの行を全部読み込むコマンドが必要となっています。

  • daipot
  • お礼率74% (185/247)

質問者が選んだベストアンサー

  • ベストアンサー
  • keyth
  • ベストアンサー率50% (2/4)
回答No.1

daipotさんの言われている関数はtextreadではないですか? headerlinesパラメータを設定すれば、ヘッダ行として無視してくれます。

参考URL:
http://www.cybernet.co.jp/matlab/support/manual/r13/toolbox/matlab/ref/textread.shtml
daipot
質問者

お礼

ありがとうございます。これで、目的を果たせました。

関連するQ&A

  • MATLABにおける行の挿入方法

    こんにちは,現在データ整理のためにMATLABを用いて以下のようなプログラムを構築しています 1.ファイルを読み,その値を100行7列の行列Aとする 2.Aの10行目と11行目の間に1行7列の行列B1を挿入する (イメージ的にはEXCELの行の挿入です) 3.同様に20行目と21行目の間に1行7列の行列B2を挿入する 4.以降10行ごとに繰り返す となります.ここで2の処理にあたる「行列の特定の列の間に別の行列を挿入する」方法がわかりません いろいろ調べたのですが、このような方法はどこにもありませんでした MATLABに詳しい方,教えていただけないでしょうか?

  • matlabでファイルをn行目から変数に読み込む方法

    matlabでファイルをn行目から読み込む方法がわかりません。 具体的にはファイルの上9行に説明文が入っていて、10行目からtab区切りでn×m行列のデータが入っているファイルがあって、その中のn×m行列のデータを変数に代入したいのですが、その方法がわかりません。 loadで読み込もうとしたのですが上手くできません。もし読み込む方法があるのなら誰か教えてください。

  • 【再】MATLABのcsvreadについて

    前回質問させて頂いたのですが、意味が分からないとの指摘を 頂きましたので、再度質問させていただきます。 何度も申し訳ないですが、ご存知の方がいらっしゃいましたら教えて下さい。 私がやりたいのは、CSV形式のファイル名を入力すると MATLABさんが入力されたファイル名を読み取って グラフを表示するといったことがしたいのです。 (フォルダ内にたくさんあるCSVファイルから、好きなのを選びたい) そのため、私はcsvreadの引数であるファイル名を変数として みましたが、文字列じゃないとダメだと怒られます。 下記に私の書いたものをそのまま載せますので、ダメな点を指摘していただければと思います。 <<Mファイル>> Prompt = {'対象文字','Figure Number '}; Title = 'Dialog'; Def={'A','1'}; set_Dialog = inputdlg(Prompt,Title,1,Def); filename1 = strcat(set_Dialog(1,1),'_1.csv'); filename2 = strcat(set_Dialog(1,1),'_2.csv'); fig_num = set_Dialog(2,1); ↓ここからわかりません。↓ >>xy = csvread(filename); ??? エラー ==> csvread の 32 行目ファイル名は文字列でなければなりません。 >>xy = csvread('filename2'); ??? エラー ==> csvread の 38 行目ファイルが見つかりません

  • sedコマンド 先頭に空白文字を含む行の挿入

    よろしくお願いします。 [やりたい事] linaxサーバで、行の先頭に空白を3個含む文字列aaaを、/tmp/abc.cnfの3行目に挿入したいですが下記[実施コマンド]ではうまくいかず、上手くいくコマンドラインを教えて下さい。 [実施コマンド] sed -e ”3i <space><space><space>aaa” /tmp/abc.cnf [/tmp/abc.cnf]の中身 △△△123 △△△456 △△△aaa ←コマンドで挿入したい △△△666 △△△777 よろしくお願いします

  • コマンドプロンプトで行が見えなくなる

    コマンドプロンプトにバッチでファイル情報を一行ずつ出力します。 行が非常に多いため、始めのほうに出力された行が、上スクロールバーをあげても見えなくなります。 このような場合どうすればよいでしょうか。 すべての文字を残すまたは、テキストファイルに出力するなどできないでしょうか。

  • MATLABでのcsvreadで困っています。

    はじめして。 MATLABの記述方法についての質問です。 Filename = strcat(set_Dialog(1,1),'.csv'); として、Filenameをダイアログから入力できるようにできるようにしました。 ところが、csvread('ファイル名')の引数を文字列として認識させる方法が分かりません。 ご存知の方がいらっしゃいましたら、教えて下さい。 よろしく御願いいたします。

  • MATLABの2つのプログラム間でデータのやりとり

    MATLABで同時に2つのプログラムを動かし、プログラム間でデータのやりとりをしたいです。 例えば、片方でsave data.mat、もう片方でload data.matとすると、 data.mat書き込み中にアクセスすることがあるため、 以下の(1)~(3)のようなエラーメッセージが出ます。 (1)エラー load MAT ファイル data.mat を読み込むことができません。 ファイルが壊れている可能性があります。 (2)エラー load ASCII ファイル data.mat の 2行目の列数は、前の行と同じでなければなりません。 (3)エラー load MAT ファイル data.mat を読み込めません:2 進数の MAT ファイルではありません。 テキストとして読み込むために LOAD -ASCII を試してください。 なにか、うまい方法は無いでしょうか? ちなみに、プログラムはMATLAB Compilerを利用し、いずれも24時間動きっぱなしにすることを想定しています。

  • vbaで特定の番号から番号の表データを抽出

    任意の範囲で表からデータを抽出することができるのでしょうか? 行は100行で列は7列、1行めは項目行で、1列目の2行目から1番から99番までが割り当てられています。1行目の2列目から7列目まで項目が割り当てられています。その他のセルには数値や文字データが入力されています。 こんな表から、任意に、例えば10行目から35行目までのセルデータ全てを別シートに取り出すそんな抽出方法があるのでしょうか?皆目検討がつきません。もし可能ならどなたかお教え頂けませんか?

  • エクセルで行頭にある数字で行を揃えたい

    エクセルの使い方で質問です。 エクセルにのA列にID(01~10)が10行入っており、B列に01黒、04白、10赤、C列と4行、さらにC列には02大、05小、06中、08中、09小、と5行入っている状態です。 この表にはは空白がなく上に詰まっている状態です。 つまり1行目には 01 01黒 02大 2行目には 02 04白 05小 と入っている状態です。これらの表を先頭の数値に合わせて整理したいのですが、どのような方法がいいでしょうか? つまり1行目には文字列の先頭が「01」のものが、2行目には文字列の先頭が02のものがならび、該当する文字列がない場合は空白にしておきたいです。 よろしくお願いします。

  • コマンドプロンプトでのBATファイルで、定数文字列の記述方法

    コマンドプロンプト画面で実行するBATファイルの先頭で、定数文字列を定義して、以降の行で使用したいのでが、その定義の仕方を知っている方がいらっしゃれば、教えてもらえないでしょうか ?

専門家に質問してみよう