(简单?)findpeaks和if循环错误

时间:2014-01-16 18:17:28

标签: matlab maxima

我正在尝试使用findpeaks()函数找到数据集的局部最大值,到目前为止我有这段代码:

[pks, locs] = findpeaks(signal);
max_times = zeros(size(locs));

if n = 1:size(locs);
max_times(n) = (times(locs(n)));
end

我想做什么? 我有一组信号数据和相应的时间。我想得到局部最大值并输出两个向量;最大信号值及其发生的时间。

我是怎么做的? 我正在使用findpeaks函数来查找最大值的峰值(pks)和位置(locs)。然后我设置一个与locs向量长度相同的空白数组,然后使用if循环用最大值出现的时间填充空的max_times(n)向量

问题? 我一直收到关于if循环的错误Expression or statement is incomplete or incorrect.。我不明白这意味着什么/如何解决这个问题/编辑我的代码让它做我想做的事情?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

你在想什么是完全错误的。

If不是一个循环,它是一个条件语句
你想要的是一个for循环

for n = 1:size(locs)
    % your code
end

同样times有两个参数,你应该自己弄清楚它应该是什么