csvデータをfigure化し、その値の全体の割合描出について
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
cho hunseki
el 30 de Jun. de 2023
Comentada: cho hunseki
el 1 de Jul. de 2023
度々質問させて頂いております。
現在生体信号の複数の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 comentarios
Respuesta aceptada
sp6038sy
el 1 de Jul. de 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); % <<<
Más respuestas (0)
Ver también
Categorías
Más información sobre 波形生成 en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!