一个单元格中的多个矩阵运算
Several matrix operations in one single cell
我有这个样本矩阵,其中行指的是不同的物种,列指的是不同的观察位置。单元格用 1 或 0 填充,具体取决于是否在该特定位置观察到物种(即:在位置 #1 和 #2 观察到物种 B)
1 2 3
a 1 1 0
b 1 1 0
c 1 0 0
d 0 0 1
我必须计算每个物种的出现。物种的出现定义为:"the number of other species in which a certain species has been observed divided by the total number of other species"(即:物种 A 在位置 #1 中观察到物种 B 和 C,在位置 #2 中观察到物种 B,因此出现是 3 个物种中的 2 个(B和 C 在 {B,C,D} 或 0.667 中)。
出现 1 意味着物种 X 与所有其他物种一起被发现,出现 0 意味着物种 X 总是单独被发现。
结果会是这样的:
物种出现
一个 0.67
b 0.67
c 0.67
d 0.00
我能够生成一个具有与物种一样多的行和列的辅助矩阵,并使用 SUMPRODUCT 检查每个交互是否发生。然后将所有列的值相加除以得到出现的次数。
我的问题是:“可以在一个单元格中执行这样的公式吗?”
非常感谢。
假设table在A1:D5
,在E2
,数组公式**:
=MAX(0,SUM(N(MMULT(B:D,TRANSPOSE(B2:D2))>0))-1)/(COUNTA(A:A)-1)
按要求抄下。
此致
**数组公式的输入方式与 'standard' 公式不同。您不是只按 ENTER,而是先按住 CTRL 和 SHIFT,然后再按 ENTER。如果操作正确,您会注意到 Excel 在公式周围放置了大括号 {}(但不要尝试自己手动插入)。
我有这个样本矩阵,其中行指的是不同的物种,列指的是不同的观察位置。单元格用 1 或 0 填充,具体取决于是否在该特定位置观察到物种(即:在位置 #1 和 #2 观察到物种 B)
1 2 3
a 1 1 0
b 1 1 0
c 1 0 0
d 0 0 1
我必须计算每个物种的出现。物种的出现定义为:"the number of other species in which a certain species has been observed divided by the total number of other species"(即:物种 A 在位置 #1 中观察到物种 B 和 C,在位置 #2 中观察到物种 B,因此出现是 3 个物种中的 2 个(B和 C 在 {B,C,D} 或 0.667 中)。 出现 1 意味着物种 X 与所有其他物种一起被发现,出现 0 意味着物种 X 总是单独被发现。
结果会是这样的:
物种出现 一个 0.67 b 0.67 c 0.67 d 0.00
我能够生成一个具有与物种一样多的行和列的辅助矩阵,并使用 SUMPRODUCT 检查每个交互是否发生。然后将所有列的值相加除以得到出现的次数。
我的问题是:“可以在一个单元格中执行这样的公式吗?”
非常感谢。
假设table在A1:D5
,在E2
,数组公式**:
=MAX(0,SUM(N(MMULT(B:D,TRANSPOSE(B2:D2))>0))-1)/(COUNTA(A:A)-1)
按要求抄下。
此致
**数组公式的输入方式与 'standard' 公式不同。您不是只按 ENTER,而是先按住 CTRL 和 SHIFT,然后再按 ENTER。如果操作正确,您会注意到 Excel 在公式周围放置了大括号 {}(但不要尝试自己手动插入)。