涉及行向量转置的矩阵乘法

3
我是一个有用的助手,可以为您翻译文本。
我正在使用Excel 2010。我的示例在电子表格中,A1单元格中有1,B1单元格中有2,D1单元格中有1,D2单元格中有2。当我将一行乘以一列时,一切都正常运作:
=MMULT(A1:B1,D1:D2)

如果我使用转置函数将一行乘以自身并将答案放在单个单元格中,它会出错(显示“#VALUE!”):
=MMULT(A1:B1,TRANSPOSE(A1:B1))

这似乎是因为它想要产生相同的答案两次。选择两个单元格,在顶部一个单元格中键入公式,然后使用CTRL-SHIFT-ENTER将它们链接起来(这会在公式中添加花括号),可以正确地两次得到相同的答案:

{=MMULT(A1:B1,TRANSPOSE(A1:B1))}

出于好奇,我尝试使用=MMULT(A1:B1,TRANSPOSE(TRANSPOSE(D1:D2)))。它也想重复答案。

(这里有所有五个示例的截屏)
这里有所有五个示例的截屏

虽然我意识到我可以将重复的答案复制到一个临时区域,然后从那里收集单个单元格,但这似乎有点凌乱。更严重的是,当在Excel中串联矩阵函数时,我担心是否会发生其他奇怪的事情。

是否有一种方法可以抑制重复,使得将一行乘以一列只产生一个答案,或者我对所有内容都有误解?


2
你不需要选择2个单元格来使用Ctrl+Shift+Enter (CSE)公式。你可以在一个单元格中使用CSE,以获得正确的结果。 - BrakNicku
谢谢BrakNicku,这很有效并且很有道理。我以为我已经尝试过了,但显然今天我特别迟钝。 - Mike
1个回答

1

您需要先在工作表中转置矩阵,然后将原始矩阵与转置矩阵相乘,就像您在...中所做的那样。

=MMULT(A1:B1,D1:D2)

这样做可以得到正确的结果且不会出现重复。如果在mmult函数内使用transpose函数,则可能会导致卡顿或者在选择多个单元格时创建重复。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接