声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1559|回复: 5

[编程技巧] 从数组中取出同样长度n的数组进行点乘,怎么把结果存入一个数组中呢?

[复制链接]
发表于 2007-11-6 13:01 | 显示全部楼层 |阅读模式

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

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

x
代码:
n=2;
for j=0:(10-n)
   for i=0:n
       x=b(1:n);
       c=b((j+1):(j+n));
      
   end
sum_(j)=sum(x.*c)
end
[sum_x,sum_y]=max(sum_)
结果错误:
Error in ==> sample_file at 22
sum_(j)=sum(x.*c)

[ 本帖最后由 无水1324 于 2007-11-6 19:38 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-11-6 14:08 | 显示全部楼层
楼主不要把MATLAB当C来用,建议多读读基础书,尤其是MATLAB矢量编程。此外,多看看本版的精华帖子。你那个i到底有什么用?建议楼主最好举例说一下你到底想实现什么功能?你这个程序完全可以矢量化的。
 楼主| 发表于 2007-11-6 14:16 | 显示全部楼层

回复 #2 rocwoods 的帖子

我要实现的功能从f=[1 2 3 4 5 1 2 3 4 5 1]
中取出  x  =[1 2 3 4 5 1]
         c[1]=[1 2 3 4 5 1]
         c[2]=[2 3 4 5 1 2]
         c[3]=[3 4 5 1 2 3]
        …
         c[6]=[1 2 3 4 5 1]

m[1]=c[1].*x
m[2]=c[2].*x

m[6]=c[6].*x
从数组F中取出一组数x,移位相乘。。然后放入数组m中。
发表于 2007-11-6 14:39 | 显示全部楼层
是不是两个空矩阵不让点乘?
发表于 2007-11-6 15:22 | 显示全部楼层
这个直接用冒号运算符就可以做出来了
 楼主| 发表于 2007-11-6 17:31 | 显示全部楼层
已经做出来了。。非常谢谢那么多热心的朋友!
n=2;k=1;
for j=0:(length(f)-n)
       x=b(1:n);
       c=b((j+1):(j+n));   
   res(k)=sum(x.*c);
k=k+1;
end

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-18 15:38 , Processed in 0.077926 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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