24小时热门版块排行榜    

查看: 1862  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 2026国自然函评费到账 +16 羊腰板 2026-08-21 17/850 2026-08-23 23:02 by tianxiaochun
[基金申请] 让我中一个面上吧! +12 大萍1987 2026-08-20 15/750 2026-08-23 20:44 by 大萍1987
[基金申请] 2026年的国家社科基金项目通讯评审的新规则与新动向、新挑战 +4 process2012 2026-08-23 5/250 2026-08-23 19:58 by jurkat.1640
[教师之家] 跳槽后在研项目怎么办? +5 简单化xn 2026-08-22 10/500 2026-08-23 12:38 by 简单化xn
[基金申请] 什么时候开奖? +9 CrisMessi 2026-08-18 10/500 2026-08-23 12:03 by 丶昵称占用
[基金申请] 范进中举一文的中心思想 +3 炎黄贵胄 2026-08-22 4/200 2026-08-22 20:02 by mycsru
[基金申请] 只有每年这种时候来逛逛小木虫 +24 yaoyewhu2008 2026-08-20 26/1300 2026-08-22 17:43 by kammury
[基金申请] 人气不行了 +8 fansofjerry 2026-08-21 8/400 2026-08-22 16:30 by zyqchem
[基金申请] 今天基金会出结果吗?20260819 +16 kkkl_v 2026-08-19 17/850 2026-08-22 16:12 by 阿布Abu
[基金申请] 时间戳今天,20号变了 +5 archvillain 2026-08-20 5/250 2026-08-22 06:12 by hui_daxiao
[基金申请] 放榜前的不淡定 40+4 snowwithsea 2026-08-19 14/700 2026-08-21 23:51 by cratir
[基金申请] 建议基金发布提前给出明确的时间点 +10 kulium 2026-08-21 13/650 2026-08-21 21:58 by alongwaytogo
[基金申请] 时间戳又变了 +13 wuchongjun 2026-08-20 19/950 2026-08-21 17:21 by 紫杉醇
[基金申请] 感觉是下周放榜了 +7 angus9576 2026-08-17 12/600 2026-08-21 13:38 by weiyin
[论文投稿] 投稿咨询 +5 wwm09 2026-08-17 7/350 2026-08-21 10:11 by 期刊论文帮手
[基金申请] 基金啊基金 +4 longfie172 2026-08-20 4/200 2026-08-21 08:58 by mark mao
[基金申请] 时间戳变了,能看出什么问题? +18 基诺咪客 2026-08-17 23/1150 2026-08-20 17:19 by Godzela
[基金申请] 朋友圈看到的 +6 wangzilk 2026-08-18 8/400 2026-08-19 10:55 by Haru815
[基金申请] 明天放榜? +5 Shxjjxjkx 2026-08-18 5/250 2026-08-18 18:14 by -大大大大大-
[基金申请] 今天维护系统维护 祝所有人 高中 +8 gjjjzhong 2026-08-18 9/450 2026-08-18 13:01 by 家与远方
信息提示
请填处理意见