matlab中的脑电图 - 图论分割

时间:2014-05-28 07:25:17

标签: matlab signals

我有一个EEG数据集,我想用Laplacian Eigenmaps进一步检查它。然而,目前我想找到局部最大值并将新的矩阵保存在两个局部最大值之间的所有不同矢量(见图片 - 我正在寻找黑线)。我在Matlab中使用findpeaks函数,我得到了一个带有峰值的矩阵,但从那里我不知道如何继续前进。提前谢谢!

1 个答案:

答案 0 :(得分:1)

我猜很多,但你在寻找类似的东西:

%% some data
N = 4; % number of peaks
peakPositions = rand(N,2); % peak positions

%% difference vector matrix
diffMat = zeros(N*(N-1)/2,2);
actPos = 1;
for n = 1:N    
    diffMat(actPos:actPos+N-n-1,:) = ...
               bsxfun(@minus, peakPositions(n+1:end,:), peakPositions(n));
    actPos = actPos+N-n;
end

示例:

peakPositions =
    0.2630    0.4505
    0.6541    0.0838
    0.6892    0.2290
    0.7482    0.9133


diffMat =
    0.3911   -0.1791
    0.4262   -0.0340
    0.4852    0.6504
    0.0351   -0.4251
    0.0941    0.2593
    0.0589    0.2241