ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: samsoncsr

[讨论]识别MMULT另类用法,苦于无具体实例。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2008-5-31 20:52 | 显示全部楼层
QUOTE:
以下是引用czzqb在2008-5-31 20:45:23的发言:

这句话非常对。矩阵运算的规律就是A*B<>B*A

也有特列,当A,B中有一个为单位矩阵或者是其数量矩阵时,两者的乘积A*B=B*A

TA的精华主题

TA的得分主题

发表于 2008-6-6 09:13 | 显示全部楼层

其实郑大叔的细说mmult已经说得很清楚了

=A1:A5=B1:B3你可以用F9来检验一下(假定A1=B1,A2=B2,A3=B3),得到的结果将是:={TRUE;TRUE;TRUE;#N/A;#N/A}
注意后面有两个#N/A。为什么?原来这个公式是这样比较的:

     A1=B1
     A2=B2
     A3=B3
     A4=?
     A5=?

楼主的公式就是这个结果,4*2可以,但是2*4不可以,会被自动默认为2*2

原帖:http://club.excelhome.net/viewthread.php?tid=270255&replyID=&skin=0

TA的精华主题

TA的得分主题

发表于 2008-6-6 10:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
建议楼主看看高等代数的矩阵运算,可能收获更大。

TA的精华主题

TA的得分主题

发表于 2008-6-6 10:54 | 显示全部楼层

我没看附件。根据以前解题时碰到的问题:我数学不好,所以,经常在应该把哪段公式放在array1、array2的问题上犯迷糊,所以,一般我就套上去试试,看出了什么问题再换过来试试。

结果,有时候发现,对调之后也能找到解法,尤其在我不熟悉MMULT的时候,第一次解法很笨,但对调之后构建数组就非常轻松了。

所以,说句猜测的话:感觉楼主想表达的就是这种“换个参数位置,就换个解题思路”的意思来。

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-6-6 11:41 | 显示全部楼层

gouweicao78版主说的对极了。

我的意思就是说想通过置换参数位置来实现另一种解题方式,想征集相应的解决范例。

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-6-6 11:51 | 显示全部楼层
QUOTE:
以下是引用wanglei569在2008-6-6 9:13:15的发言:

其实郑大叔的细说mmult已经说得很清楚了

=A1:A5=B1:B3你可以用F9来检验一下(假定A1=B1,A2=B2,A3=B3),得到的结果将是:={TRUE;TRUE;TRUE;#N/A;#N/A}
注意后面有两个#N/A。为什么?原来这个公式是这样比较的:

     A1=B1
     A2=B2
     A3=B3
     A4=?
     A5=?

楼主的公式就是这个结果,4*2可以,但是2*4不可以,会被自动默认为2*2

原帖:http://club.excelhome.net/viewthread.php?tid=270255&replyID=&skin=0

我没有深研MMULT中的#N/A,版主的的解释有启发,谢谢。

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-6-6 11:52 | 显示全部楼层
QUOTE:
以下是引用水星钓鱼在2008-5-31 20:37:48的发言:

我算是看懂了,samsoncsr兄我们一般用MMULT解题都是让一个数组变为一维数组,构造列相加或行相加的,你举的例子MMULT都是多维的了,如果说它有什么应用嘛,暂时的就是用来求矩阵的乘积了。

另附上线性代数说的矩阵乘积的定义:

只有当左边的矩阵A等于右边矩阵B 的行数时,乘积AB才有意义,这是AB的行数等于矩阵A的行数,AB的列数等于矩阵B的列数,且AB的第I行第I列的元素是A的第I行与B的第J列的对应元素乘积之和.这里A,B对应array1,array2.

另外mmult(array1,array2)=mmult(transpose(array2),transpose(array1)).


mmult(array1,array2)=mmult(transpose(array2),transpose(array1))有所感悟,谢谢!

TA的精华主题

TA的得分主题

发表于 2008-6-6 20:59 | 显示全部楼层
QUOTE:
以下是引用水星钓鱼在2008-5-31 20:37:48的发言:

我算是看懂了,samsoncsr兄我们一般用MMULT解题都是让一个数组变为一维数组,构造列相加或行相加的,你举的例子MMULT都是多维的了,如果说它有什么应用嘛,暂时的就是用来求矩阵的乘积了。

另附上线性代数说的矩阵乘积的定义:

只有当左边的矩阵A等于右边矩阵B 的行数时,乘积AB才有意义,这是AB的行数等于矩阵A的行数,AB的列数等于矩阵B的列数,且AB的第I行第I列的元素是A的第I行与B的第J列的对应元素乘积之和.这里A,B对应array1,array2.

另外mmult(array1,array2)=mmult(transpose(array2),transpose(array1)).


mmult(array1,array2)=mmult(transpose(array2),transpose(array1)).

array1={1,4;2,5;3,6;4,7},array2=={1;2}运算结果是不对的。行列转置的

根据矩阵运算,正确的是transpose(mmult(array1,array2))=mmult(transpose(array2),transpose(array1))

矩阵(AB)'=B'A','号代表转置

TA的精华主题

TA的得分主题

发表于 2008-6-6 21:07 | 显示全部楼层
QUOTE:
以下是引用冻豆腐在2008-6-6 20:59:42的发言:

mmult(array1,array2)=mmult(transpose(array2),transpose(array1)).

array1={1,4;2,5;3,6;4,7},array2=={1;2}运算结果是不对的。行列转置的

根据矩阵运算,正确的是transpose(mmult(array1,array2))=mmult(transpose(array2),transpose(array1))

矩阵(AB)'=B'A','号代表转置

你是对的,谢谢指出。

TA的精华主题

TA的得分主题

发表于 2008-5-31 20:37 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

其实那句话就是帮助里的第一句话

这个规则适用于所有的MMULT

还是没看懂楼主要表达的意思

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-22 09:28 , Processed in 0.031493 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表