フィルターのクリア

Only plot outline of graph

4 ビュー (過去 30 日間)
Lara
Lara 2023 年 12 月 21 日
コメント済み: Dyuman Joshi 2023 年 12 月 22 日
this is my code:
% Plot the conductivity levels along the line (as an outline)
figure;
plot(lineX, conductivityValues, 'k-', 'LineWidth', 1.5, 'Marker', 'none');
xlabel('X [m]');
ylabel('Conductivity');
title(['Conductivity along Y = ', num2str(targetY)]);
box on
and now i get this plot:
I only wantt to plot the outline of this plot how do I do this?
  5 件のコメント
Matt J
Matt J 2023 年 12 月 21 日
編集済み: Matt J 2023 年 12 月 21 日
It is always advisable to attach a .mat file of sample input data to accompany your code, so that the forum can more easily develop and demonstrate solutions.
Dyuman Joshi
Dyuman Joshi 2023 年 12 月 22 日
You can plot the local maximas -
% Numerical data (generated as an example)
% Taken from Matt J's answer
N = 1e3;
t = linspace(-4, 2, N);
R = randn(1,N);
y = sin(t) + 0.5*sin(2*t) + 0.2*sin(3*t)+cos(t) + 0.5*cos(2*t) + 0.2*cos(3*t)+.2*R;
IND = (y<0);
y(IND)=abs(y(IND));
idx = islocalmax(y);
plot(t, y, t(idx), y(idx), 'k--')

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

回答 (2 件)

Matt J
Matt J 2023 年 12 月 21 日
編集済み: Matt J 2023 年 12 月 21 日
Use movmax to get the upper envelope of a sequence of data points, and possibly smooth it with sgolayfilt, e.g.,
% Numerical data (generated as an example)
N = 1e3;
t = linspace(-4, 2, N);
R = randn(1,N);
y = sin(t) + 0.5*sin(2*t) + 0.2*sin(3*t)+cos(t) + 0.5*cos(2*t) + 0.2*cos(3*t)+.2*R;
IND = find(y<0);
y(IND)=abs(y(IND));
yupper=sgolayfilt( movmax(y,25), 4,41);
% Data is Plotted
plot(t, y, t,yupper,'LineWidth', 1.5);
legend('Data','Outline',Location='northwest')

Sulaymon Eshkabilov
Sulaymon Eshkabilov 2023 年 12 月 21 日
In this exercise, envelope() with 'peaks' options does a good job, e.g.:
% Numerical data (generated as an example)
N = 1e3;
t = linspace(-4, 2, N);
R = randn(1,N);
y = sin(t) + 0.5*sin(2*t) + 0.2*sin(3*t)+cos(t) + 0.5*cos(2*t) + 0.2*cos(3*t)+.2*R;
IND = find(y<0);
y(IND)=abs(y(IND));
% Data is Plotted
plot(t, y, 'LineWidth', 1.5, 'DisplayName','Data');
hold on;
% Envelope function is applied
[UP, ~] = envelope(y,15, 'peaks');
% UPPER Envelope is plotted
plot(t, UP, 'k-', 'linewidth', 2.5, 'DisplayName','Outer Profile Shape')
legend('Location', 'Best')
hold off;

カテゴリ

Help Center および File ExchangeLine Plots についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by