如何阻止均在一个for循环具有非统一的数据长度

问题描述 投票:0回答:1

我在Matlab一个纽比,我需要估计向量中的一个非均匀的数据长度的平均值。我有一个标志柱(1和0),时间戳,和我的兴趣变量的矩阵。基本上,数据(从intrument)的测量标志:零(基准值)的时间N量,和标志:一个将样品的时间N量英寸N是可变的,但28-30秒之间oscilates。

我需要实现是估计每个标志的平均值:零和标志:每个测量周期。

我迄今所做的:

for i=1:numel(inlet)

if inlet(i)== 1; co2_0(i)=NaN; end

end

for i=1:numel(inlet)

if inlet(i)== 0; co2_1(i)=NaN; end

end

这里做的事情基本上是把NaN当条件(即零个或一个)不满足。

于是,我试图做一个嵌套/如果循环,但这是一部分,我无法估计的平均值

for i = 1:1:length(inlet)

if inlet (i) == 1
    co2_avg(i) = co2_1 (i);
end


for j=1:length(co2_avg)
    co2_mu (j) = mean(co2_avg);
end

end

任何帮助表示赞赏

matlab for-loop moving-average
1个回答
0
投票
  1. 就像莫扎特说,你可以简单地在你想只对那些在第一列具有1至平均任何地方使用X(X(:,1)==1, 3)代替X(:,3)的,同样为0。
  2. 如果你想而忽略NaN值计算平均值,你应该使用平均的nanmean

(一般来说,存在一种用于在Matlab最简单的功能是“NAN-忽略”等效功能:nanmin,nanmax,nanstd等)

© www.soinside.com 2019 - 2024. All rights reserved.