Arrays matlab在具有条件的数组行之间求和

Arrays matlab在具有条件的数组行之间求和,arrays,matlab,Arrays,Matlab,我还在学习如何写循环和使用cellfun 我有n(=3124)个大小相等的矩阵数组: [45x5 double] [45x5 double] [nx5 double] .... 数组{1,1} 1691 7858 1 735064.617361111 0.00277777777955635 1691 7958 2 735064.620138889 NaN 1691 7926 3 735064.620138889 0.00

我还在学习如何写循环和使用cellfun

我有n(=3124)个大小相等的矩阵数组:

[45x5 double]
[45x5 double]
[nx5 double]
    ....
数组{1,1}

1691    7858    1   735064.617361111    0.00277777777955635
1691    7958    2   735064.620138889    NaN
1691    7926    3   735064.620138889    0.000694444446708076
.....
数组{2,1}

1691    7858    1   735064.666666667    0.00138888889341615
1691    7958    2   735064.668055556    0.000694444439432118
1691    7926    3   735064.668750000    0
.....
数组{n,1}

1691    7858    1   735064.360416667    0.000694444439432118
1691    7958    2   735064.361111111    0.000694444446708076
1691    7926    3   735064.361805556    NaN
.....
我希望获得一个nx5阵列的45x5单元,根据第4列上的条件,该单元在第5列的行之间求和。条件是:

7307 < = values in column 4 < 7.3070e+03 
7307<=第4列中的值<7.3070e+03
我在这里发现了一个类似的问题:

以下是我的尝试:

 for i=1:size(A,1)
    for j=1:size(A{i,1},1)
         if  7307 < (A{i,1}(j,4)) < 7.3070e+03 
         mean_A = nanmean(A{i,1}(j,5))
         end
    end
 end
i=1时的
:大小(A,1)
对于j=1:size(A{i,1},1)
如果7307<(A{i,1}(j,4))<7.3070e+03
mean_A=nanmean(A{i,1}(j,5))
结束
结束
结束
用这个代码,我只得到一个结果不是每个矩阵值平均值的单元格。你能告诉我这个循环的主要问题是什么,或者给我一个在这种情况下如何使用cellfun的提示吗?
谢谢

7.3070e+03等于7307,因此if将始终为false这实际上是一个日期('ddmmyyy hh:mm:ss')。如果时间包括在00:00:00和01:00:00之间(无论哪一天),我想验证一个条件是否为真。为了验证条件,我应该将这些日期和时间转换为日期向量吗?条件的形式不正确:应该写入(7307<(A{I,1}(j,4))&((A{I,1}(j,4))<7.3070e+03))。在您的表单中,条件将始终为真:(7307<(A{i,1}(j,4))=1,1<7.3070e+03=1我想知道为什么不垂直堆叠所有内容,并添加一列来索引它来自的单元格数组。这样,执行逻辑索引就容易多了。你是说像gevan在这篇文章中那样使用cellfun吗?