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

3 次查看(过去 30 天)
cho hunseki
cho hunseki 2023-6-30
度々質問させて頂いております。
現在生体信号の複数の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 个)

Community Treasure Hunt

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

Start Hunting!