声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1328|回复: 4

[编程技巧] 求助:请高手帮忙改进程序

[复制链接]
发表于 2007-5-17 10:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我遍了如下程序:

load  a.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的矩阵,   元素如下

10  10  8667
2    3    5856
………
…………
也就是说按a的第一列和第二列给第三列在k中定位

如何改进这个程序?如果按以上算法,估计得算几年?算法本身应该没有错误把?

[ 本帖最后由 yxb345 于 2007-5-17 10:51 编辑 ]
回复
分享到:

使用道具 举报

发表于 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 编辑 ]

评分

1

查看全部评分

 楼主| 发表于 2007-5-17 11:12 | 显示全部楼层
多谢,不过你这样算得话只定位了对角线部分啊
发表于 2007-5-17 11:52 | 显示全部楼层
没有啊,你先用个小的方阵试下就知道了
k(col(i),row(i))=data(i);  
一个是行,一个是列

评分

1

查看全部评分

 楼主| 发表于 2007-5-17 12:35 | 显示全部楼层
高人!!!!!完全正确!!!多谢!!!!1
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-12 12:00 , Processed in 0.065114 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表