如果只是声明和选择某些数据而已

时间:2014-02-26 16:58:26

标签: arrays matlab sum

以简单的方式描述我的问题,例如,我对每个频率都有[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

2 个答案:

答案 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);