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

조회 수: 3 (최근 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 CenterFile Exchange에서 波形生成에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!