Unable to perform assignment because the size of the left side is 1-by-14 and the size of the right side is 14-by-14.

1 次查看(过去 30 天)
Unable to perform assignment because the size of the left side is 1-by-14 and the size of the right side is 14-by-14.
Error in SSA (line 87)
Tp=SalpPositions(i,:)>ub';Tm=SalpPositions(i,:)<lb';SalpPositions(i,:)=(SalpPositions(i,:).*(~(Tp+Tm)))+ub'.*Tp+lb'.*Tm;
Error in main_SSA (line 16)
[Best_score,Best_pos,SSA_cg_curve]=SSA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);
>>

采纳的回答

Walter Roberson
Walter Roberson 2021-10-6
Your ub and lb need to be column vectors, not row vectors.
  2 个评论
Walter Roberson
Walter Roberson 2021-10-6
% Problem preparation
dim = 14;
ub = 1.1 * ones(dim, 1);
lb = 0.05 * ones(dim, 1);
fobj = @ofun;
%--------------------------------------------------------------------------
SearchAgents_no=20; %number of population
Max_iteration=1000; %number of iteration
%%
[Best_score,Best_pos,SSA_cg_curve]=SSA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);

请先登录,再进行评论。

更多回答(2 个)

Alan Weiss
Alan Weiss 2021-10-6
The error statement is clear: your assignment (equality) statement has a 1-by-14 vector on the left and a 14-by-14 matrix on the right. Take a look at line 87 of your SSA function to see what is wrong. Are those the expected sizes of the variables?
Alan Weiss
MATLAB mathematical toolbox documentation
  1 个评论
tahseen alshmary
tahseen alshmary 2021-10-6
编辑:Walter Roberson 2021-10-6
I do not know
my pararmeter is :
% Problem preparation
dim = 14;
ub = 1.1 * ones(1, dim);
lb = 0.05 * ones(1, dim);
fobj = @ofun;
%--------------------------------------------------------------------------
SearchAgents_no=20; %number of population
Max_iteration=1000; %number of iteration
%%
[Best_score,Best_pos,SSA_cg_curve]=SSA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);

请先登录,再进行评论。


tahseen alshmary
tahseen alshmary 2021-10-6

标签

产品


版本

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by