以简单的方式描述我的问题,例如,我对每个频率都有[1,2,3,4,5,6]
和data = [4,7,2,1,4,9]
的频率。我需要在MATLAB中仅对3-5Hz频率的数据进行求和。我如何编写代码来满足我的问题?以下是我的程序代码试用但不起作用。
f=[1,2,3,4,5,6];
data = [4,7,2,1,4,9];
if 3<=f<=5
sumdata=sum(data);
else
end
答案 0 :(得分:2)
尝试:
f=[1,2,3,4,5,6];
data = [4,7,2,1,4,9];
sumdata = sum(data(3 <= f & f <= 5));
操作:3 <= f & f <= 5
为您提供符合条件的值的逻辑矩阵。
>> 3 <= f & f <= 5
ans =
0 0 1 1 1 0
然后,您可以使用此逻辑矩阵仅获取与您的数据中的有效索引相对应的值:data(3 <= f & f <= 5)
然后将它们相加:sum(data(3 <= f & f <= 5))
。
答案 1 :(得分:0)
您可以使用
f=[1,2,3,4,5,6];
data = [4,7,2,1,4,9];
validData = data(f <= 5 & f >= 3);
result = sum(validData);