matlab for循环嵌套语句,帮我看一下错在哪里

公式是C(m,n)=-sum(abs(s(i,:)^4*exp(-j*(m-n)*2*pi*sin(rtheta(i))/l));
程序这么写,错在哪里?
for m=1:sensor_number;
for n=1:sensor_number;
i=1:ll;
C(m,n)=-sum(abs(s(i,:)^4*exp(-j*(m-n)*2*pi*sin(rtheta(i))/l));
end
end
按以下两位的改也不行,错误提示始终是??? Error using ==> mpower
Matrix must be square.

Error in ==> Untitled at 28
C(m,n)=-sum(abs(s(i,:))^4*exp(-j*(m-n)*2*pi*sin(rtheta(i))/l));
s(i,:)是s的行向量,代表一个信号,abs(s(i,:))是信号的模

需要注意:
C(m,n)是一个数,也就是C矩阵的第m行,第n列的那个数。
而这两行:
i=1:ll
C(m,n)=-sum(abs(s(i,:)^4*exp(-j*(m-n)*2*pi*sin(rtheta(i))/l));
表达什么意思,我看不明白。从s(i,:)可以看出,你这里的s可能是一个矩阵,所以,你是要把s矩阵里面所有的元素都加权求和吗?还是只对某一行或某一列进行加权求和?
如果是对所有元素进行加权求和,那可能需要再嵌套一个循环:
for i=1:ll
C(m,n)=C(m,n)-sum(abs(s(i,:)^4*exp(-j*(m-n)*2*pi*sin(rtheta(i))/l));
end
此外,还要注意的是:
1.s(i,:)这里的冒号应是英文的冒号
2.s(i,:)^4这里如果是向量求幂的话,要写成s(i,:).^4
如果有疑问,请补充说明。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-09-26
少了个括号,再查一下公式。另外abs(s(i,:))里的冒号是中文冒号。
第2个回答  2010-09-26
i=1:ll;这不需要循环吗