csvデータをfig​ure化し、その値の​全体の割合描出につい​て

7 ビュー (過去 30 日間)
cho hunseki
cho hunseki 2023 年 6 月 30 日
コメント済み: cho hunseki 2023 年 7 月 1 日
度々質問させて頂いております。
現在生体信号の複数のcsvデータを重ね合わせてfigure化させることを試みております。
また、そのデータの値に応じて色を分けております。
具体的には以下のコードになります。
list = dir('*.csv');
figure
hold on
for ii = 1:length(list)
a = readmatrix(list(ii).name);
A = a.*1e6;
if peak2peak(A(1,:)) < 100;
color = 'red';
else
color = 'blue';
end
plot(A(1,:),color);
end
上記コードにより、添付したfigureが作成されます。
これは生体信号の波形でpeak to peakの値が100以下のものを赤、100以上を青に色分けしております。
ここから更に、100以下の波形が全体の何%なのかを示したいと考えています。
(例:全体で100データあり、peak to peakが100以下の波形が30あれば、30%というように割合をだしたいです)
調べてみると「tabulate」という関数が一番近いと思いましたが、
上記コードへの組み込み方が分かりません。
①tabulate関数でよいでしょうか
②上記コードに組み込む場合には、どのようにすればよいでしょうか。
ご教授頂けますでしょうか。
宜しくお願い致します。

採用された回答

sp6038sy
sp6038sy 2023 年 7 月 1 日
難しく考えずに100以下になるデータの個数をカウントしてはどうでしょうか。
list = dir('*.csv');
figure; hold on
counts = 0; % <<<
for ii = 1:length(list)
a = readmatrix(list(ii).name);
A = a.*1e6;
if peak2peak(A(1,:)) < 100;
color = 'red';
counts = counts +1; % <<<
else
color = 'blue';
end
plot(A(1,:),color);
end
ratio = counts / length(list); % <<<
  1 件のコメント
cho hunseki
cho hunseki 2023 年 7 月 1 日
sp6038syさん
この度はご回答頂きありがとうございました。
ご教授頂いたコードでやりたいことを出来ました。
ありがとうございました。

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File Exchangeワークスペース変数と MAT ファイル についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!