yxb345 发表于 2007-5-17 10:41

求助:请高手帮忙改进程序

我遍了如下程序:

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 编辑 ]

spano 发表于 2007-5-17 10:55

回复 #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 编辑 ]

yxb345 发表于 2007-5-17 11:12

多谢,不过你这样算得话只定位了对角线部分啊

spano 发表于 2007-5-17 11:52

没有啊,你先用个小的方阵试下就知道了
k(col(i),row(i))=data(i);
一个是行,一个是列

yxb345 发表于 2007-5-17 12:35

高人!!!!!完全正确!!!多谢!!!!1
页: [1]
查看完整版本: 求助:请高手帮忙改进程序