Matlab最大值函数

时间:2014-01-18 14:05:11

标签: matlab function

我的功能有问题。它应该采用信号和时间数据并输出最大值和最大值信号的两个向量。我所做的是尝试使用findpeaks函数创建一个pks和locs数组,然后初始化一个与locs数组大小相同的空白数组,然后使用for语句通过并用时间数据重新分配零。最大值。

function [ max_times, max_signal ] = local_max(time_data, signal_data)
%Finds the local maximum of data

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

for n = 1:size(locs);
    max_times(n) = max_signal(locs(n));
end

clear 'locs' 

end

这是我得到的错误:

错误:文件:local_max.m行:7列:10 等号左侧的表达式不是作业的有效目标。

我不太明白这意味着什么/如何解决它。有人能帮忙吗?

2 个答案:

答案 0 :(得分:0)

您收到错误的原因是因为使用它时未定义max_signal。你可能想要:

max_times(n) = time_data(locs(n));

此外,循环是不必要的。你可以这样做:

[pks, locs] = findpeaks(signal_data);
max_times = time_data(locs);

答案 1 :(得分:0)

原因是size(locs)将返回[1, n],而不是数字。所以你需要改变

for n = 1:size(locs);

for n = 1:numel(locs);