为什么unifrnd(lb,ub,[nPop,D])出错?

15次观看(过去30天)
Sadiq阿克巴
Sadiq阿克巴 2020年12月26日
评论道: 里克 2021年1月3日
为什么下面的代码会出错?
Lb =[0 0 0 0];Ub =[10 10 PI PI];nPop = 30;D = 4;
unifrnd(磅,乌兰巴托,[nPop D])
使用unifrnd时出错
大小信息不一致。
1评论
里克
里克 2021年1月3日
删除的注释可以在 谷歌缓存 (存档版本将需要修改属性,因为显示/隐藏注释切换不能正确执行)。

登录发表评论。

答案(1)

埃米尔哈姆萨
埃米尔哈姆萨 2020年12月26日
这不能在单一呼叫unifrnd中完成。你需要一个for循环
Lb = [0 0 0 0];Ub =[10 10 PI PI];nPop = 30;
D = numel(lb);
M = rand(nPop, D);
i = 1:D
M(:,i) = unifrnd(lb(i),ub(i),[nPop,1]);
结束
31日评论
Sadiq阿克巴
Sadiq阿克巴 2020年12月28日
此外,当我咆哮它与我自己的旧适应度函数(在你的改变之前),它再次给出错误为:
下标赋值维度不匹配。
fun2sn0中的错误(第13行)
[~, ix1(ix)] = sort(b);% temp通过算法存储随机生成的向量“best”
GQPSO中的错误(第54行)
F_x (i) = feval(fun,x(i,:));
myfit_driver错误(第2行)
[xmin,fmin,histout] = GQPSO(@fun2sn0,4,30,[0 000],[10 10 pi pi],2000,10000*4);

登录发表评论。

社区寻宝

在MATLAB中央找到宝藏,并发现社区可以如何帮助你!

开始狩猎!