csvデータをfigure化し、その値の全体の割合描出について
2 views (last 30 days)
Show older comments
度々質問させて頂いております。
現在生体信号の複数の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関数でよいでしょうか
②上記コードに組み込む場合には、どのようにすればよいでしょうか。
ご教授頂けますでしょうか。
宜しくお願い致します。
0 Comments
Accepted Answer
sp6038sy
on 1 Jul 2023
難しく考えずに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); % <<<
More Answers (0)
See Also
Categories
Find more on 波形生成 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!