kangtj 发表于 2007-11-6 13:01

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

代码:
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
=max(sum_)
结果错误:
Error in ==> sample_file at 22
sum_(j)=sum(x.*c)

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

rocwoods 发表于 2007-11-6 14:08

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

kangtj 发表于 2007-11-6 14:16

回复 #2 rocwoods 的帖子

我要实现的功能从f=
中取出x=
         c=
         c=
         c=
      …
         c=

m=c.*x
m=c.*x

m=c.*x
从数组F中取出一组数x,移位相乘。。然后放入数组m中。

VibrationMaster 发表于 2007-11-6 14:39

是不是两个空矩阵不让点乘?

eight 发表于 2007-11-6 15:22

这个直接用冒号运算符就可以做出来了

kangtj 发表于 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]
查看完整版本: 从数组中取出同样长度n的数组进行点乘,怎么把结果存入一个数组中呢?