我的功能有问题。它应该采用信号和时间数据并输出最大值和最大值信号的两个向量。我所做的是尝试使用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 等号左侧的表达式不是作业的有效目标。
我不太明白这意味着什么/如何解决它。有人能帮忙吗?
答案 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);