24小时热门版块排行榜    

查看: 1991  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[找工作] 售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急 +3 i3cz6qj6l2 2026-02-17 3/150 2026-02-18 11:09 by lqtl9djx19
[考博] 售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急 +3 i3cz6qj6l2 2026-02-17 3/150 2026-02-18 10:54 by lqtl9djx19
[考研] 售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急 +3 i3cz6qj6l2 2026-02-17 3/150 2026-02-18 10:39 by lqtl9djx19
[考研] 售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急 +3 pnpwoqbg8f 2026-02-17 3/150 2026-02-18 08:53 by lqtl9djx19
[硕博家园] 售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急 +3 pnpwoqbg8f 2026-02-17 3/150 2026-02-18 08:38 by lqtl9djx19
[找工作] 售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急 +4 pnpwoqbg8f 2026-02-17 4/200 2026-02-18 07:55 by lotyj5cz79
[基金申请] 售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急 +3 pnpwoqbg8f 2026-02-16 4/200 2026-02-18 07:40 by lotyj5cz79
[考研] 售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急 +4 pnpwoqbg8f 2026-02-16 4/200 2026-02-18 07:38 by lotyj5cz79
[硕博家园] 售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急 +4 pnpwoqbg8f 2026-02-16 4/200 2026-02-18 07:23 by lotyj5cz79
[论文投稿] 售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急 +4 pnpwoqbg8f 2026-02-16 4/200 2026-02-18 07:08 by lotyj5cz79
[公派出国] 售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急 +3 pnpwoqbg8f 2026-02-16 3/150 2026-02-18 06:53 by lotyj5cz79
[论文投稿] 售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急 +3 pnpwoqbg8f 2026-02-17 3/150 2026-02-18 00:40 by tk2gfblvuz
[找工作] 售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急 +3 pnpwoqbg8f 2026-02-17 4/200 2026-02-18 00:23 by tk2gfblvuz
[公派出国] 售SCI一区文章,我:8 O5 51O 54,科目齐全,可+急 +3 pnpwoqbg8f 2026-02-17 3/150 2026-02-17 23:40 by tk2gfblvuz
[基金申请] 基金正文30页指的是报告正文还是整个申请书 +3 successhe 2026-02-16 4/200 2026-02-17 20:56 by successhe
[基金申请] 今年春晚有几个节目很不错,点赞! +5 瞬息宇宙 2026-02-16 6/300 2026-02-17 12:49 by jymy19840415
[微米和纳米] 球磨粉体时遇到了大的问题,请指教! 10+3 6sbiam 2026-02-12 15/750 2026-02-16 15:03 by tgzxzqj
[基金申请] 过年走亲戚时感受到了所开私家车的鄙视链 +3 瞬息宇宙 2026-02-15 5/250 2026-02-16 14:23 by aspect3000
[基金申请] 情人节自我反思:在爱情中有过遗憾吗? +4 瞬息宇宙 2026-02-15 5/250 2026-02-15 22:28 by baiboxie
[硕博家园] 江汉大学解明教授课题组招博士研究生/博士后 +3 cleverlyy 2026-02-12 3/150 2026-02-12 21:02 by qsdf1
信息提示
请填处理意见