
テストデータをMATLABに取り込んでデータ整理をしたいと思っています.
不要な行を削除するにはどのようにすればいいでしょうか?
取得するデータは下記のような感じで,実際には数千行ぐらいの量になります.
070B 8 F4 01 1C 02 FD 01 7E 05 3.232 R
070C 8 FF 01 03 02 28 00 12 00 3.233 R
070B 8 F8 01 AF 01 FD 01 E4 05 3.237 R
070C 8 00 02 02 02 28 00 13 00 3.238 R
060B 5 43 41 4E 5F 31 3.238 R
070B 8 F3 01 28 02 FD 01 EB 04 3.242 R
070C 8 00 02 04 02 29 00 13 00 3.243 R
070Bと070Cで始まる行が交互にあり,不定期に060Bで始まる行が出てきます.
これらのデータから060Bで始まる行だけを削除するにはどうすればよろしいでしょうか?
060Bの行は他の行に比べて要素数も少ないです.
現時点ではテキストエディタで開いた後,手動で削除しているのですが,データ量が増えてきたので自動化できないかと思っています.
アドバイスよろしくお願いします.
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)))
No.3
- 回答日時:
#2です。
cmpDATA(:)='060B';
は間違いですね。こうかな?
cmpDATA(:)={'060B'};
相変わらず未確認なので、動くかはわかりません。
この回答への補足
取り込む型を間違っていました。
[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無いんで未確認です。
この回答への補足
早速のご回答ありがとうございます.
各列個別に取り込みたいので,取りこむ型はn行1列の配列12個です.
出先のためMatlabですぐに確認はできませんが,戻り次第,トライしたいと思います.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- iPhone(アイフォーン) iphoneのicloud写真データ移動について 3 2022/11/28 18:11
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- その他(プログラミング・Web制作) EXCEL VBAについて 2 2022/12/04 17:03
- USBメモリー・SDカード・フラッシュメモリー 銀行が振込データの受け渡しに未だにFDを使っている理由は「FDDがAドライブ固定だから」って本当? 11 2022/06/02 03:53
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/03/02 08:40
- Google Drive USB内の圧縮フォルダが開けません。教えて下さい! 1 2022/07/26 18:44
- その他(ブラウザ) IE・edgeで日増しに観られるサイトが減ってくる。 1 2022/10/04 22:40
- Visual Basic(VBA) 【ExcelVBA】Powerクエリーでいうピボット解除と同じ処理をVBAで 4 2022/07/06 17:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスかラベル上の...
-
Visual Basicについてお聞きし...
-
vba 日本語以外を抽出について
-
cshスクリプト内での”ヒアドキ...
-
助けてください!
-
アクセスのフィールドに値をペ...
-
Pythonのre.split()の正規表現...
-
ExcelのVBAで文章にある複数の...
-
htmlの修正方法を教えていただ...
-
円頓章を現代語訳して下さい。
-
C++言語、国際符号翻訳プログラ...
-
文字列を配列に…。
-
VBA public変数はどのようなこ...
-
アクセスできない保護レベルエ...
-
他のフォームから別のフォーム...
-
VB.NETでのイベントの途中終了
-
C#のループでtextboxに値を入れ...
-
二点の座標から距離や角度を求...
-
vb.net 文字コードから漢字へ変換
-
レコードセットにnullの場合
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックスかラベル上の...
-
ExcelのVBAで文章にある複数の...
-
vba 日本語以外を抽出について
-
Dreamweaverにて金額にカンマと...
-
XMLファイルのattribute値がう...
-
【VBS】クリップボード操作につ...
-
文字をアクティブにする方法
-
VBAの文字列で「"」を識別したい。
-
MATLABでのデータ処理に関して
-
円頓章を現代語訳して下さい。
-
C++言語、国際符号翻訳プログラ...
-
アクセスのフィールドに値をペ...
-
Googleシート「A1」でなくて「A...
-
助けてください!
-
図の様な枠線の引き方を教えて...
-
[VB2010]関数・代入が順序正し...
-
TextAreaのinsert
-
フォーム、サブフォーム間のデ...
-
TextBox内の特定文字の数を数え...
-
サクラのサーバーについて教え...
おすすめ情報