gpt4 book ai didi

matlab - 找不到错误: Matrix dimensions must agree

转载 作者:行者123 更新时间:2023-12-03 07:49:28 26 4
gpt4 key购买 nike

我的目的是将此函数调用到pso代码中以使其最小化。
实际上我在其他程序(mfile)中调用此代码

 v=0.1*x0; % initial velocity
for i=1:n
f0(i,1)=ofun(x0(i,:));
end

所以我该怎么办,请问有人可以给我写一个代码,这样我可以消除此问题。我的目标是使用ITEA代码来最大程度地减少错误,即我试图做的事情,即试图在每次代码运行时都找到一个e_t具有最后更新的值,而不是e_t = 0.001。
我没有 e_t。如果要初始化它,它将保持不变,但是我需要在代码中更改其值。

其次,我收到此错误

Error using .* Matrix dimensions must agree.

Error in ofun (line 10), f = sum(t'.*abs(e_t)*dt);


function f=ofun(x)
Kp= x(1);
Ki= x(2);
e_t;
d=0.001;
I_ref=-1.1:d:1;
dt = 0.01;
t = 0:dt:1;
e_t= I_ref - (Kp.*e_t +Ki.*sum(t'.*abs(e_t)*dt));
f = sum(t'.*abs(e_t)*dt); % line 10

我想为以下方程式编写代码
error= I_ref - (kp * error + ki*(integration of error));

我想设置 I-ref=-1.1-1.1;

最佳答案

此处e_tI_ref的大小相同

e_t= I_ref - (Kp.*e_t +Ki.*sum(t'.*abs(e_t)*dt));

那你想乘以t
f = sum(t'.*abs(e_t)*dt);

但是 tI_ref的大小不同。 t的长度为101, I_ref的长度为2101。

关于matlab - 找不到错误: Matrix dimensions must agree,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45935933/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com