我仍在学习如何编写循环和使用 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 的提示吗?谢谢