• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MATLABでのデータ処理に関して)

MATLABでのデータ処理に関する疑問:データ整理方法とは?

このQ&Aのポイント
  • MATLABでのデータ処理について疑問があります。テストデータを取り込んでデータ整理をしたいのですが、不要な行を削除する方法を教えてください。
  • テストデータの取り込み・データ整理について、MATLABでの方法について教えてください。特に、不要な行を削除する方法についてお聞きしたいです。
  • MATLABを使用してテストデータの取り込みとデータ整理を行いたいのですが、不要な行の削除方法がわかりません。どのようにすれば不要な行を削除できるでしょうか?

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

  • ベストアンサー
回答No.4

#2です。 とりあえず2案ほど・・・・相変わらず確認はしてません。 matlabはfor文つかったら負けなので案1の方がお勧めです。 %案1 filename='a.txt'; num_cols = 12; [fid,message]=fopen(filename,'rt'); if fid ==-1 error(message); end text=textscan(fid,repmat('%s',1,num_cols)); fclose(fid); text_=cat(2,text{:}); text_(strcmp(text{1},'060B'),:)=[]: %文字列配列として使う cell2mat(text_(1:end,1)) %数値として扱う hex2dec(cell2mat(text_(1:end,1))) %案2 filename='a.txt'; num_cols = 12; [fid,message]=fopen(filename,'rt'); if fid ==-1 error(message); end text=textscan(fid,repmat('%s',1,num_cols)); fclose(fid); cmp=strcmp(text{1},'060B'); for I=1:num_cols; text{I}(cmp)=[]: end %文字列配列として使う cell2mat(text(1)) %数値として扱う hex2dec(cell2mat(text(1)))

lzono_afayette
質問者

お礼

ご指導ありがとうございました. 案1をベースにさせていただきました.

その他の回答 (3)

回答No.3

#2です。 cmpDATA(:)='060B'; は間違いですね。こうかな? cmpDATA(:)={'060B'}; 相変わらず未確認なので、動くかはわかりません。

lzono_afayette
質問者

補足

取り込む型を間違っていました。 [text] = textread(filename, '%s', -1); で取り込んだ後、n行1列の配列12個に振り分けています。 現在のプログラムは下記なのですがこのやり方だと'060B'の行を削除するのは難しいでしょうか? たびたびお手数をおかけしますがアドバイスよろしくお願いします。 [text] = textread(filename, '%s', -1); num_cols = 12; lines = round(length(text)/num_cols); data1 = zeros(lines,1); ... data12 = zeros(lines,1); for i = 1:lines data1 = char(text(num_cols*(i-1)+1));    ... data12= char(text(num_cols*(i-1)+12)); end

回答No.2

matlabでどのような型で取り込んでいるんでしょう? n行12列のセル配列ですか? セル配列だとして、これをDATAとすると、こんな感じかな? lines= size(DATA,1); cmpDATA = cell(lines,1); cmpDATA(:)='060B'; DATA(strcmp(DATA(1:end,1),cmpDATA),:)=[]; 手元にmatlab無いんで未確認です。

lzono_afayette
質問者

補足

早速のご回答ありがとうございます. 各列個別に取り込みたいので,取りこむ型はn行1列の配列12個です. 出先のためMatlabですぐに確認はできませんが,戻り次第,トライしたいと思います.

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

grep や findstr などのコマンドで除外してみては。

lzono_afayette
質問者

補足

ご回答ありがとうございます. なるほど. コマンドラインで出来てしまうのですね. 今回のデータ処理は,PCの操作に慣れていない人間でも出来るようにしておかないと駄目なため 出来ればMatlabでやりたいと思っています. (グラフを描く作業をMatlabでやるようにM-Fileを使っています)

関連するQ&A

専門家に質問してみよう