matlab对数组求和 很多元素_简谈matlab的dot命令

本文介绍了MATLAB中的dot命令用于计算向量或矩阵内积的基本用法。当应用于2维矩阵时,dot命令默认按列计算内积,而通过指定参数dim可以改变这一行为,例如dim=1表示按列计算,dim=2表示按行计算。对于高维矩阵,dot命令以指定维度为单位进行内积运算。文中给出了具体的三维矩阵和四维矩阵的示例,并提供了测试代码供读者验证理解。

在matlab中,dot命令是计算向量或矩阵的内积,在矩阵论中,若a,b是向量,则内积使用表示,其本质是对应元素相乘后再将各项加在一起,即

=a1b1+a2b2+…+anbn

若A,B是2维矩阵,在使用dot计算内积时,matlab把A,B中各列看作向量,分别计算对应列的内积,也可以使用带参数dim的格式,即

dot(A,B,dim)

这个格式中,当dim=1时,以对应各列为基本向量,计算内积;当dim=2时,以对应各行为基本向量,计算内积;当dim=3时,此时矩阵属于高维矩阵,按照矩阵的维度由低到高,若设定为列、行、页、册、卷等逐级升高的维度代号,则当dim=3时,首先以页为操作单位,将对应页上对应位置的元素求积,再将各页上求得的积,按对应位置求和。

例如,三维矩阵A,B如下,

ca99d473f75d5ad063b8354c89abd45d.png

则dot(A,B,3)的计算如下:

241d8aef1812b449455db91cf4d48a8a.png

再举一个4维矩阵的例子,其具体计算如图。

d8d4d9241ad645f0209452158d6be5da.png

为了方便验证,下面给出上述例子的实现代码,可自己运行测试,

function testFunc(n,k)% 功能:dot函数的高维数组测试函数% 参数:n—维数;k—维度量值;二者均为正整数。vec='[';for iLoop=1:n   vec=horzcat(vec,'k ');endvec=horzcat(vec,']');vec=eval(vec);A=reshape(1:k^n,vec);B=reshape(k^n:-1:1,vec);for iDim=1:n   fprintf('\n下述内积为: dot(A,B,%d);\n',iDim);   disp(dot(A,B,iDim));end上述代码摘自《MATLAB语言编程》一书,更多细节,请参阅该书。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值