声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2274|回复: 7

[编程技巧] 如何对多个数组相乘并求和

[复制链接]
发表于 2008-1-20 16:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
比如有一数组X=1:1:10
又有一函数A(i), i=1:1:n

我想求 A(1)*X+A(2)*X+....+A(n)*X, 当n很大时,应该用什么函数编程计算呢
用sum(A(i).*X)总是错误

求高手指点一下

[ 本帖最后由 eight 于 2008-1-22 20:31 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-1-20 16:52 | 显示全部楼层

回复 楼主 的帖子

sum(A(i).*X)
是不是应该sum(A(i).*X(i))
 楼主| 发表于 2008-1-20 18:59 | 显示全部楼层
发表于 2008-1-20 19:32 | 显示全部楼层

回复 3楼 的帖子

点不要
 楼主| 发表于 2008-1-20 20:08 | 显示全部楼层
点不要,仍有错误的
我知道了,用一个循环语句就行了
s=0;
for i=1:n
s=s+A(i)*X;
end
s
发表于 2008-1-20 21:52 | 显示全部楼层

回复 5楼 的帖子

你要的s也是一个向量?
发表于 2009-9-26 08:43 | 显示全部楼层
转置就行了,如下:

X=1:10  %%1*10向量
A=rand(1,100)     %%产生1*100的一个随机向量
y=sum(sum( A'*X )) %%对矩阵所有元素求和
%%%%求解结果:
y =
        2.4515e+003

尽量避免循环运算

[ 本帖最后由 allenfieldin 于 2009-9-26 09:22 编辑 ]

评分

1

查看全部评分

发表于 2009-9-26 09:48 | 显示全部楼层
*的两个矩阵要求和线性代数里要求一样;.*需要两个矩阵大小相同



sogooda同志是这样说的,呵呵
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-22 06:50 , Processed in 0.058126 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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