注册 登录
编程论坛 Matlab

[求助]我的算法居然使MATLAB无修止地算下去

app21701appp 发布于 2007-06-01 11:58, 713 次点击

我把两个矩中的元素一一对应求平方后再相加再开方。

u1uneven和u1even都是309641*1的非零矩阵,


for i=1:309641
parray=sqrt(u1uneven(i)*u1uneven(i)+u1even(i)*u1even(i));
end


我运行上面程序后结果MATLAB就无修止地算下去,3个多小时都没算完。
大哥大姐能告诉我我错在哪里了吗?
谢谢你们了!!!!!!!!!!
希望你们尽快回复!!很急!!

3 回复
#2
尘埃1222007-06-01 12:43

如果走循环,超过万次的MATLAB循环 计算会比较费时,不是程序的错误,只是需要优化

你可以用矩阵中数值的计算来求取,那样效率会高些

parray=sqrt(u1uneven.^2+u1uneven.^2);

你直接用这个计算,试试


呵呵,补充:如果你用parray=sqrt(u1uneven(i)*u1uneven(i)+u1even(i)*u1even(i))这个来计算,parray的下标也该随着改变,不然最后的结果都只有一个数值;




#3
app21701appp2007-06-01 12:54
谢谢版主大哥,我这次的毕业设计是我大学以来第一次也是最后一次编程,所以我很没经验,连MATLAB有些内容都是刚刚学的。谢谢!!!!!!!!!!!!
#4
尘埃1222007-06-01 13:02
你这谢得……

呵呵,有事没事常来版里走走

1