我有100个文件名为file.1.netcc,file.2.netcc。。。文件.100.netcc。每个文件包含以下内容:
# 4 # Number of network ROIs
# 2 # Number of netcc matrices
# WITH_ROI_LABELS
LFovea_LO LLO LMT RV3A
1 2 3 4
# CC
1.0000 0.2271 -0.1172 -0.2258
0.2271 1.0000 0.3991 0.1092
-0.1172 0.3991 1.0000 0.3055
-0.2258 0.1092 0.3055 1.0000
# FZ
4.0000 0.2312 -0.1177 -0.2297
0.2312 4.0000 0.4226 0.1096
-0.1177 0.4226 4.0000 0.3156
-0.2297 0.1096 0.3156 4.0000
现在,我要做的是平均所有的'cc'值。每个值将从所有文件中取平均值。例如,我们从所有文件的第一列、第一行(1.0000)取平均值并输出为平均值。。。依此类推,直到最后一位,即所有文件的4列第4行平均值(1.0000)。
所以我想要返回的是一个4x4表,其中的值是所有文件的平均值。
我还想为下面的'FZ'类做这个。我该怎么做?你知道吗
我尝试使用以下命令:
awk '{a[FNR]+=" "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8;b[FNR]++;}END{for(i=1;i<=FNR;i++)print i,a[i]/b[i];}' /Users/3dnetcorr/file*.netcc > outputs_averaged.file
但是这个命令所做的(我认为)是平均整个列,为每列提供一个值。。这不是我想要的。你知道吗
我想我要问的是如何平均出包含矩阵的文件? 如何使用python编码实现这一点?也许是努比?你知道吗
awk
救命!你知道吗这不会验证文件格式,因此应该跨文件保持一致。 它不假设平方矩阵。一些命名约定
_f
表示计数器的标志/指示符_c
。fc
是文件计数器。您可以将标志和计数器组合起来,但将更难解释。你知道吗使用gnuawk
适用于格式为
# XX
的多个矩阵/^# .. $/
:与# CC
、# FX
、# RZ
匹配(注意结尾的空格)。您可以根据需要修改图案。如果此模式匹配,则将key设置为$2
,即key=CC
或key=FX
等PROCINFO["sorted_in"]="@ind_num_asc"
:根据键对关联数组a
排序。排序顺序在遍历过程中得到反映。你知道吗ARGIND<=100{...}
:此块汇总每个文件的数组元素。将100更改为您要播放的文件的任意数量END {..}
块:遍历数组并打印每个元素的平均值。ARGIND
这里表示文件的数量,因此每个索引的矩阵元素总数。你知道吗相关问题 更多 >
编程相关推荐