PDA

查看完整版本 : [MATLAB基础] 求助行赋值和列赋值的效率


nicholasvan
2009-07-26, 10:52
各位牛人,我今天用matlab的时候,对以前的一个程序进行了修改,结果发觉运行速度慢了N倍,而我只改动了2行代码,如下:
原来代码:
A=sparse((randperm(K))'<=dgree);
B(:,column)=A;
更改后:
A=sparse(randperm(K)<=dgree);
B(row,:)=A;
A和B是两个矩阵,其中A是4000*4000的方阵,B是个1*4000的向量,dgree是个数,目的是随机的在A中产生dgree个1。然后我发觉对B赋值,原来的对列赋值效率比下面对行赋值的效率高很多。当我采用循环的时候,发觉一个只要几秒可以完成,另一个却要几千秒。不知道是怎么回事,希望大家可以帮我解答一下。谢谢各位了。:confused: