2013-03-04 57 views
-1

我工作的这个代码,但我无法揣摩出我错了
这是代码的一部分,显示错误:试图访问索引越界错误的MATLAB

sf_num=0; sf_den=0;a=0; o=0; 
for i=1:512 
    for j=1:512 
     sf_num=sf_num+(w1(i,j)*o(i,j)); 
     a=a+(o(i,j)*o(i,j)); 
     b=b+(w1(i,j)*w1(i,j)); 
     sf_den = sqrt(sf_den + a*double(b)); 
    end 
end 

和这是错误:

Attempted to access o(1,2); index out of bounds because numel(o)=1. 

Error in ==> dwtcode at 44 
    sf_num=sf_num+(w1(i,j)*o(i,j)); 
+3

由于“O”为你定义它只是一个标... – Jan 2013-03-04 15:09:27

+0

@一月,感谢您的答复,但我该怎么做,我应该怎么做才能使它工作 – sumedha 2013-03-04 15:14:43

+0

向量化代码!!!! – Shai 2013-03-04 15:33:30

回答

2

您定义o为:o=0使其成为一个标量,这意味着它只有1元。

您不能访问的o指数1,2,因为它没有那么多的元素