24小时热门版块排行榜    

查看: 2020  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 26考研一志愿中国石油大学(华东)305分求调剂 +5 嘉年新程 2026-03-15 5/250 2026-03-21 15:20 by 巴黎材料
[考研] 313求调剂 +3 肆叁贰壹22 2026-03-19 3/150 2026-03-21 08:01 by JourneyLucky
[考研] 346求调剂[0856] +4 WayneLim327 2026-03-16 7/350 2026-03-21 04:02 by JourneyLucky
[考研] 08工科 320总分 求调剂 +6 梨花珞晚风 2026-03-17 6/300 2026-03-21 03:40 by JourneyLucky
[考研] 二本跨考郑大材料306英一数二 +3 z1z2z3879 2026-03-17 3/150 2026-03-21 02:29 by JourneyLucky
[考研] 一志愿中海洋材料工程专硕330分求调剂 +8 小材化本科 2026-03-18 8/400 2026-03-20 23:16 by JourneyLucky
[考研] 考研调剂求学校推荐 +3 伯乐29 2026-03-18 5/250 2026-03-20 22:59 by JourneyLucky
[考研] 材料与化工 322求调剂 +4 然11 2026-03-19 4/200 2026-03-20 22:12 by luoyongfeng
[考研] 329求调剂 +9 想上学吖吖 2026-03-19 9/450 2026-03-20 22:01 by luoyongfeng
[考研] 北科281学硕材料求调剂 +5 tcxiaoxx 2026-03-20 5/250 2026-03-20 21:35 by laoshidan
[考研] 260求调剂 +3 朱芷琳 2026-03-20 3/150 2026-03-20 20:35 by 学员8dgXkO
[考研] 材料学求调剂 +4 Stella_Yao 2026-03-20 4/200 2026-03-20 20:28 by ms629
[考研] 一志愿西安交通大学 学硕 354求调剂211或者双一流 +3 我想要读研究生 2026-03-20 3/150 2026-03-20 20:13 by JourneyLucky
[考研] 材料与化工专硕调剂 +7 heming3743 2026-03-16 7/350 2026-03-20 19:31 by zhukairuo
[考研] 085600材料与化工调剂 324分 +10 llllkkkhh 2026-03-18 12/600 2026-03-19 14:33 by llllkkkhh
[考研] 化学工程321分求调剂 +15 大米饭! 2026-03-15 18/900 2026-03-18 14:52 by haxia
[考研] 0854,计算机类招收调剂 +3 胡辣汤放糖 2026-03-15 6/300 2026-03-18 12:09 by 上岸上岸……..
[考研] 304求调剂 +5 素年祭语 2026-03-15 5/250 2026-03-16 17:00 by 我的船我的海
[考研] 中科院材料273求调剂 +4 yzydy 2026-03-15 4/200 2026-03-16 15:59 by Gaodh_82
[考研] 327求调剂 +6 拾光任染 2026-03-15 11/550 2026-03-15 22:47 by 拾光任染
信息提示
请填处理意见