24小时热门版块排行榜    

Znn3bq.jpeg
查看: 2045  |  回复: 7

s20090281

银虫 (小有名气)

[求助] 缩短程序运行时间的方法

CODE:
function [out]=fitness(in)
        a1=in(1)   
        a2=in(2)   
        a3=in(3)
         a4=in(4)   
         b1=in(5)
         u=load('C:\测试记录控制.txt');u1=u(2:399);                          %调用数据进行下面的饮运算
          y=load('C:\测试记录反馈.txt');y1=y(2:400);
          for k=3:399
                 f=[y(k)-a1*y1(k-1)-a2*y1(k-2)-a3*y1(k-3)-b1*u1(k-1)]^2        %求出各级数据的平方和并逐渐相加得到一组对对应变量的适应度        
             Msum(k)=c
           end
out=Msum(:,k);                %输出适应度

我想问问大家可不可以帮我把这段程序的运行时间缩短一些,
我用profiler看吧一下,主要是这两句被调用了两千多次,用了150多秒
u=load('C:\测试记录控制.txt');u1=u(2:399);                        
y=load('C:\测试记录反馈.txt');y1=y(2:400);
请大家帮我想想办法
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)

【答案】应助回帖


s20090281(金币+3): 2011-09-22 20:02:04
xiegangmai(金币+1): 谢谢应助! 2011-09-22 22:04:40
很明显么,不要在循环中使用读写文件的指令
把这个指令放在你这个函数以外就是了
2楼2011-09-22 19:05:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

s20090281

银虫 (小有名气)

引用回帖:
2楼: Originally posted by 信彼南山 at 2011-09-22 19:05:53:
很明显么,不要在循环中使用读写文件的指令
把这个指令放在你这个函数以外就是了

要不你就给我举个例子,我数实在是愚笨。可是我这个函数就是要求算300多次的和,那如果不放这怎么求啊?
3楼2011-09-22 20:01:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)

【答案】应助回帖


s20090281(金币+7): 2011-09-22 22:15:12
xiegangmai(金币+1): 谢谢应助! 2011-09-22 22:34:43
CODE:
   u=load('C:\测试记录控制.txt');u1=u(2:399);                          %调用数据进行下面的饮运算
          y=load('C:\测试记录反馈.txt');y1=y(2:400);

function [out]=fitness(in,y,u)
        a1=in(1)   
        a2=in(2)   
        a3=in(3)
         a4=in(4)   
         b1=in(5)
                for k=3:399
                 f=[y(k)-a1*y1(k-1)-a2*y1(k-2)-a3*y1(k-3)-b1*u1(k-1)]^2        %求出各级数据的平方和并逐渐相加得到一组对对应变量的适应度        
             Msum(k)=c
           end
out=Msum(:,k);                %输出适应度

这样不就完了,不把那个放你的函数里面
其实,你这个程序完全没有比较用子函数调用,直接在一个文件里面多一个循环就是了么
4楼2011-09-22 22:11:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)

说实话,有教你怎么改的这功夫程序我都编完八遍了
5楼2011-09-22 22:12:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

s20090281

银虫 (小有名气)

引用回帖:
4楼: Originally posted by 信彼南山 at 2011-09-22 22:11:04:
[code]
   u=load('C:\测试记录控制.txt');u1=u(2:399);                          %调用数据进行下面的饮运算
          y=load('C:\测试记录反馈.txt');y1=y(2:400);

function [out]=fitness(in,y,u)
    ...

恩,你讲的很有道理,主要是我编程的时候上面计算完,下面的x要改变,改变了之后还要用这个函数计算,在这我就不会弄了,只好弄个函数调用了,呵呵,谢谢你的解答。
6楼2011-09-22 22:14:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

s20090281

银虫 (小有名气)

引用回帖:
4楼: Originally posted by 信彼南山 at 2011-09-22 22:11:04:
[code]
   u=load('C:\测试记录控制.txt');u1=u(2:399);                          %调用数据进行下面的饮运算
          y=load('C:\测试记录反馈.txt');y1=y(2:400);

function [out]=fitness(in,y,u)
    ...

可是这样写是不对的,会出现错误的
??? Error: File: myfun.m Line: 3 Column: 1
Function definitions are not permitted at the prompt or in scripts.

Error in ==> myPSO at 12
    fitness(i)=myfun(pop(i,);          %通过调用myfun计算适应度大小
7楼2011-09-22 22:18:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

s20090281

银虫 (小有名气)

引用回帖:
5楼: Originally posted by 信彼南山 at 2011-09-22 22:12:36:
说实话,有教你怎么改的这功夫程序我都编完八遍了

那你教教我怎么编程吧,从何学起,我只是以前学过matlab但是从来没用来编程这是第三个程序吧,还是参考别人的做的。我觉得你是个高手教我几招吧,我也好好修炼修炼
8楼2011-09-22 22:20:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 s20090281 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 调剂 化学 307 +21 73372112 2026-04-09 23/1150 2026-04-10 23:53 by wj165256
[考研] 材料工程日语考生求调剂 +5 0856?调剂 2026-04-10 5/250 2026-04-10 20:45 by yukihao
[考研] 材料工程085601,270求调剂 +28 @ASDF1234 2026-04-08 30/1500 2026-04-10 19:28 by dick_runner
[考研] 071000生物学调剂求助 +17 zzzzwww 2026-04-09 20/1000 2026-04-10 15:55 by 求调剂zz
[考研] +6 化工专硕323分 2026-04-04 6/300 2026-04-10 10:04 by may_新宇
[考研] 一志愿双非085400电子信息344 求调剂,对材料和化学方向也感兴趣 +8 无情的小羊 2026-04-09 9/450 2026-04-10 09:30 by 松花缸1201
[考研] 0703化学求调剂 +21 不知名的小卅 2026-04-08 21/1050 2026-04-09 18:55 by l_paradox
[论文投稿] 求助文献原文 10+3 18500821399 2026-04-08 3/150 2026-04-09 16:56 by 北京莱茵润色
[考研] 求机械专硕297第二批调剂 +5 拾柒12。 2026-04-08 5/250 2026-04-09 16:43 by 允当适度
[考研] 349学科化学045106求调剂,化学类都可以 +8 保好懂懂 2026-04-08 8/400 2026-04-09 14:03 by xulei3024
[考研] 070300化学学硕311分求调剂 +18 梁富贵险中求 2026-04-04 20/1000 2026-04-09 11:18 by 哒哒哒呱呱呱
[考研] 288求调剂 +15 没有答案_ 2026-04-05 15/750 2026-04-09 10:22 by 5268321
[考研] 086000调剂 +4 十七sa 2026-04-07 4/200 2026-04-09 09:27 by 壹往無前
[考研] 一志愿0807 数一英一 313 有没有二轮调剂 +11 emokidd 2026-04-08 12/600 2026-04-09 09:24 by wyf236
[考研] 考研求调剂 +4 雯??? 2026-04-08 4/200 2026-04-08 21:44 by 土木硕士招生
[考研] 计算机11408 287 求调剂 +3 LiLe5 2026-04-07 3/150 2026-04-07 23:15 by shanqishi
[考研] 一志愿北京化工085600 310分求调剂 +20 0856材料与化工3 2026-04-04 22/1100 2026-04-07 15:14 by 上岸快快
[考研] 331求调剂 +8 于征yz 2026-04-05 8/400 2026-04-06 00:54 by fmesaito
[考研] 308求调剂 +3 终不似从前 2026-04-05 3/150 2026-04-05 20:07 by 啵啵啵0119
[考研] 315求调剂 +5 &123456789 2026-04-05 5/250 2026-04-05 19:55 by nepu_uu
信息提示
请填处理意见