# 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.

3 views (last 30 days)
tahseen alshmary on 6 Oct 2021
Commented: Walter Roberson on 6 Oct 2021
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);
>>
tahseen alshmary on 6 Oct 2021
I being function from

Walter Roberson on 6 Oct 2021
Your ub and lb need to be column vectors, not row vectors.
##### 2 CommentsShowHide 1 older comment
Walter Roberson on 6 Oct 2021
% 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);

Alan Weiss on 6 Oct 2021
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
tahseen alshmary on 6 Oct 2021
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 on 6 Oct 2021

R2021a

### Community Treasure Hunt

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

Start Hunting!