2017-09-22 4 views
0

I 큰 데이터를 그래프 화하면 해당 설정에 기초하여이 세 가지 벡터로 설정 데이터를 분할하는 방법, 세 피크 죄의 그래프 (X) +1을 닮았다. 나는 각 피크 아래에 통합하고 세 가지 영역을 얻고 싶습니다. 나는 첨두 치의 좌표 위치를 모른다. 나는 파장을 안다고 가정 할 수 없다. 그래서 세 개의 피크를 찾아서 세 개의 해당 벡터로 데이터를 분리해야합니다. 어떤 도움이라도 대단히 감사하겠습니다.는 피크

+0

당신은 당신의 궁극적 인 목표는 무엇인가 명확히 할 수 있습니까? * "각 피크 아래에 통합되어 3 개의 다른 영역을 얻습니다"* 또는 * "데이터를 3 개의 해당 벡터로 분리"*? – codeaviator

+0

제 목표는 세 가지 영역을 얻는 것입니다.데이터 세트는 처음에는 거대한 하나의 벡터에 포함되어 있으며이를 세 개의 다른 벡터로 분리하여 trapz을 사용하려고했습니다. – Samar

답변

0

당신은 당신이 findpeaks 기능을 사용하여 원하는 것을 수행 할 수 있습니다. 다음 예를 보자 자신의 인덱스를 우리의 데이터 세트의 피크를 찾아 검색하는 그런

x = linspace(0, 5*pi); % x data. 
y = sin(x) + 1;   % y data. 

우리가 findpeaks를 사용 (locs) :

>> [~, locs] = findpeaks(y) 

locs = 

    11 51 90 

우리는 두 벡터 x 및 데이터의 y를 생성 [x(11), y(11)], [x(51), y(51)][x(90), y(90)] :

우리는 함수 좌표 3 개 피크를 발견 한 것을 알 수있다. 우리는 우리의 데이터 집합을 아주 나눌 수

>> findpeaks(y) 

signal with peaks overlaid

:

출력 인수없이 findpeaks를 호출하여 우리는 종종 시각적 인 확인을 위해 유용 중첩 피크 값으로 데이터의 플롯을 얻을 수 있습니다 쉽게 다음 for 루프 및 cell array에 다른 서브 세트를 저장 :

n = numel(locs); 
for i = 1:n + 1 
    if i == 1 
     x_cell{i} = x(1:locs(i)); 
     y_cell{i} = y(1:locs(i)); 
    elseif i <= n 
     x_cell{i} = x(locs(i-1):locs(i)); 
     y_cell{i} = y(locs(i-1):locs(i)); 
    else 
     x_cell{i} = x(locs(i-1):end); 
     y_cell{i} = y(locs(i-1):end); 
    end 
end 
,536,913 63,210

이 우리를 줄 것이다 :

K>> x_cell 

x_cell = 

    1×4 cell array 

    [1×11 double] [1×41 double] [1×40 double] [1×11 double] 

K>> y_cell 

y_cell = 

    1×4 cell array 

    [1×11 double] [1×41 double] [1×40 double] [1×11 double] 

그래서 우리는 성공적으로 우리의 데이터 집합을 분할했다. 각 셀에는 원본 데이터 집합의 하위 집합이 포함됩니다.

이제 우리는 각각의 부분 집합의 수치 적분 찾기 위해 for 루프 내에서 trapz를 사용할 수 있습니다

>> A 

A = 

    2.6004 6.4099 6.0931 2.6004 

마지막으로 나는 음모 좋은 것이라고 생각 :

k = numel(y_cell); 
for i = 1:k 
    A(i) = trapz(x_cell{i}, y_cell{i}); 
end 

을이 결과는

hold on; 
for i = 1:k 
    area(x_cell{i}, y_cell{i}, 'FaceColor', i/k*[1, 1, 1]); 
end 
hold off; axis tight; 
grid on; box on; 
01,235,164 : 다른 영역들은 서로 area 함수 및 루프를 사용 for

서로 다른 지역여기에 명확하게 볼 수 있습니다 :

area plot of different regions