求助:请高手帮忙改进程序
我遍了如下程序:loada.txt
k=zeros(8922,8922);
for i=1:8922
for j=1:8922
for n=1:89103
if(a(n,1)==i&a(n,2)==j);
k(i,j)=a(n,3);
else
end
end
end
end
save k.txt k -ascii
a.txt 是一个89103*3的矩阵, 元素如下
10108667
2 3 5856
………
…………
也就是说按a的第一列和第二列给第三列在k中定位
如何改进这个程序?如果按以上算法,估计得算几年?算法本身应该没有错误把?
[ 本帖最后由 yxb345 于 2007-5-17 10:51 编辑 ]
回复 #1 yxb345 的帖子
fid =load ( 'a.txt');col =fid(:,1);
row=fid(:,2);
data =fid(:,3);
for i=1:8922
k(col(i),row(i))=data(i);
end
save k.txt k -ascii
不知道这样符合要求不?
里面的语法错误自己改吧
[ 本帖最后由 eight 于 2007-5-17 10:57 编辑 ] 多谢,不过你这样算得话只定位了对角线部分啊 没有啊,你先用个小的方阵试下就知道了
k(col(i),row(i))=data(i);
一个是行,一个是列 高人!!!!!完全正确!!!多谢!!!!1
页:
[1]