24小时热门版块排行榜    

Znn3bq.jpeg
查看: 1636  |  回复: 12

s20090281

银虫 (小有名气)

[求助] matlab中M文件的调用

我最近参考别人的程序写了一个自己的程序但是代入不了fitness函数,请大家指点一下:我要做的是y(k)=a1*y(k-1)+b1*u(k-1)+a2*y(k-2)+a3*y(k-3)函数求a1,a2,a3,b1.已知y和u,我把适应度取为399组数据的[y(k)-a1*y(k-1)-b1*u(k-1)-a2*y(k-2)-a3*y(k-3)]^2最小
CODE:
function [out]=fitness(x)

CODE:
ai=x(i,:)           %第几组数据就是取第几个

CODE:
a1=ai(1)

CODE:
a2=ai(2)

CODE:
a3=ai(3)

CODE:
a4=ai(4)

CODE:
u=load('F:\测试记录控制.txt');u1=u(2:399,2);

CODE:
y=load('F:\测试记录反馈.txt');y1=y(2:400,2);

CODE:
c=0;

CODE:
for k=3:399

CODE:
f=[y(k)-a1*y1(k-1)-a2*y1(k-2)-a3*y1(k-3)-b1*u1(k-1)]^2        %求出各级数据的平方和并逐渐相加得到一组对对应变量的适应度

CODE:
c=c+f

CODE:
Msum(k)=c

CODE:
end

CODE:
out=Msum(:,k);                %输出适应度

那么在粒子群算法中应如何调用这个函数呢?当位置和速度更新后,怎么计算这时的适应度呢?
CODE:
ffitness(i)=fitness(pop(i,:))

这样调用为什么会出错呢?请各位帮我这个新手解答一下,谢谢
回复此楼

» 本帖已获得的红花(最新10朵)

» 猜你喜欢

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

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

信彼南山

木虫 (著名写手)


xiegangmai(金币+1): 谢谢参与! 2011-09-20 22:33:25
你这代码写的,放在一个code里面就行了
2楼2011-09-20 16:08:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

s20090281

银虫 (小有名气)

引用回帖:
2楼: Originally posted by 信彼南山 at 2011-09-20 16:08:20:
你这代码写的,放在一个code里面就行了

你可否帮我解决一下这个问题,我的只能运行一组当运行第二组时就会出现。我在正文中这么调用函数
for i=1:size
    pop(i,=2*rand(size,1)-1
    v(i,=rand(size,1)
    fitness(i)=fitness(pop(i,)
end
??? Subscript indices must either be real positive integers or logicals.
Error in ==> myPSO at 14
    fitness(i)=fitness(pop(i,)
我查了一下是下标不正确,可是那怎么改呢?
3楼2011-09-20 16:20:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)

你这代码也太乱了吧
你不会重新整理一下啊
4楼2011-09-20 19:08:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

s20090281

银虫 (小有名气)

引用回帖:
4楼: Originally posted by 信彼南山 at 2011-09-20 19:08:37:
你这代码也太乱了吧
你不会重新整理一下啊

CODE:
function [out]=fitness(x)
          ai=x(i,:)           %第几组数据就是取第几个
          a1=ai(1)
          a2=ai(2)
          a3=ai(3)
          a4=ai(4)
          u=load('F:\测试记录控制.txt');u1=u(2:399,2);) ;
          y=load('F:\测试记录反馈.txt');y1=y(2:400,2);
          c=0;
         for k=3:399
              f=[y(k)-a1*y1(k-1)-a2*y1(k-2)-a3*y1(k-3)-b1*u1(k-1)]^2 ;      
%求出各级数据的平方和并逐渐相加得到一组对对应变量的适应度      
             c=c+f;
            Msum(k)=c;
       end
       out=Msum(:,k);                %输出适应度

5楼2011-09-20 20:04:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

s20090281

银虫 (小有名气)

引用回帖:
4楼: Originally posted by 信彼南山 at 2011-09-20 19:08:37:
你这代码也太乱了吧
你不会重新整理一下啊

这样可以了吗?可以帮帮我了吧。谢谢
6楼2011-09-20 20:05:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)


xiegangmai(金币+1): 谢谢参与! 2011-09-20 22:33:42
ai=x(i,:)           %第几组数据就是取第几个
你这第一句就有问题,i没有定义
7楼2011-09-20 20:45:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)

★ ★
xiegangmai(金币+2): 辛苦了! 2011-09-20 22:33:57
你试试这样行不行?
CODE:
function [out]=fitness(a1,a2,a3,a4)
%          ai=x(i,:)           %第几组数据就是取第几个
%          a1=ai(1)
%          a2=ai(2)
%          a3=ai(3)
%          a4=ai(4)
          u=load('F:\测试记录控制.txt');u1=u(2:399,2);) ;
          y=load('F:\测试记录反馈.txt');y1=y(2:400,2);
          c=0;
         for k=3:399
              f=[y(k)-a1*y1(k-1)-a2*y1(k-2)-a3*y1(k-3)-b1*u1(k-1)]^2 ;      
%求出各级数据的平方和并逐渐相加得到一组对对应变量的适应度      
             c=c+f;
            Msum(k)=c;
       end
       out=Msum(:,k);                %输出适应度

8楼2011-09-20 20:49:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)

★ ★
xiegangmai(金币+2): 谢谢参与! 2011-09-20 22:34:07
你这个编程的习惯简直太不好了
在for循环里面怎么能放读写文件的指令呢?而且每次读的还都是同一个文件。
完全可以放在主函数里面,读一次就行了么
9楼2011-09-20 20:51:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

s20090281

银虫 (小有名气)

引用回帖:
8楼: Originally posted by 信彼南山 at 2011-09-20 20:49:40:
你试试这样行不行?
[code]
function [out]=fitness(a1,a2,a3,a4)
%          ai=x(i,:)           %第几组数据就是取第几个
%          a1=ai(1)
%          a2=ai(2)
%          a3=ai(3)
%          a ...

不好意思这个不行,对于你说的问题,我还不太懂,以前从来没写过程序,都是新写的,呵呵,不过真的很感谢你,抽空帮我看
10楼2011-09-20 22:37:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 s20090281 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 国自然面上和省基金B类撒花 +16 花田半亩~白 2026-04-21 16/800 2026-04-23 03:04 by 魅力紫翼
[考研] 有没有学校收留 +3 蒋昌鹏qtj 2026-04-20 3/150 2026-04-22 20:25 by 学员JpLReM
[考研] 312求调剂 +3 山河似你温柔 2026-04-22 3/150 2026-04-22 20:17 by 学员JpLReM
[考博] 华师大读博 +3 xq83 2026-04-22 5/250 2026-04-22 10:42 by xq83
[教师之家] 又一批高校组建人工智能学院 师资行吗 不是骗人吗 +5 yexuqing 2026-04-19 5/250 2026-04-22 10:01 by easeheart
[论文投稿] 急需审稿人!!! +3 陆小果画大饼 2026-04-21 3/150 2026-04-21 23:54 by jzy_123456
[考博] 申博/考博 +4 啃面包的小书虫 2026-04-17 8/400 2026-04-21 16:26 by 啃面包的小书虫
[考研] 295分求调剂 +6 ?要上岸? 2026-04-17 6/300 2026-04-21 08:18 by Equinoxhua
[考研] 085600材料与化工调剂 5+3 孜孜不倦2002 2026-04-19 6/300 2026-04-20 21:25 by babero
[论文投稿] 有没有接收比较快的sci期刊呀,最好在一个月之内的,研三孩子求毕业 20+4 之护着 2026-04-16 7/350 2026-04-20 15:45 by 豆豆7758
[考研] 337求调剂 +3 jyz04 2026-04-18 3/150 2026-04-20 12:24 by 研可安
[考博] 申博 +3 Xyyx. 2026-04-18 3/150 2026-04-20 10:44 by YuY66
[考博] 湖南大学刘巧玲课题组2026年第二批次博士研究生招生信息 +3 南风观火 2026-04-18 5/250 2026-04-20 10:13 by 南风观火
[考研] 求计算机方向调剂 +3 Toffee2 2026-04-16 6/300 2026-04-19 22:37 by ll叶
[考研] 294求调剂 +8 淡然654321 2026-04-17 9/450 2026-04-19 19:51 by Equinoxhua
[考研] 求调剂 +6 苦命人。。。 2026-04-18 7/350 2026-04-19 16:27 by 中豫男
[考研] 收到复试调剂但是去不了 +8 小蜗牛* 2026-04-16 8/400 2026-04-18 11:15 by zixin2025
[考研] 260求调剂 +4 Zyt1314520.. 2026-04-17 5/250 2026-04-18 08:28 by babysonlkd
[有机交流] 二苯甲酮酸类衍生物 50+3 小白爱主人 2026-04-17 6/300 2026-04-17 18:47 by kf2781974
[考研] 322求调剂 +6 tekuzu 2026-04-17 6/300 2026-04-17 13:48 by Espannnnnol
信息提示
请填处理意见