0

我仍在学习如何编写循环和使用 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
.....

我想根据对第 4 列施加的条件获得一个 45x5 的 nx5 数组单元格,其中第 5 列各行的总和。条件是:

7307 < = values in column 4 < 7.3070e+03 

我在这里发现了一个类似的问题:

Cellfun:如何对矩阵单元数组中的每一行求和?MATLAB

matlab - cellfun 对每个单元格的所有元素求和

我何时以及为什么应该在 Matlab 中使用 cellfun?

在矩阵中查找值并在找到时求和

下面是我的尝试:

 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

使用此代码,我只能获得一个单元格,其结果不是每个矩阵的平均值。你能告诉我这个循环的主要问题是什么,或者给我一个关于在这种情况下如何使用 cellfun 的提示吗?谢谢

4

0 回答 0