Error: Invalid expression. When calling a function or indexing a variable, use parentheses. Otherwise, check for mismatched delimiters.
2 ビュー (過去 30 日間)
古いコメントを表示
I am trying to run this code but it gives me a lot of error.
function vi=successor(optimValues, ~)
%get current state, which is automatically put in optimValues
xi = optimValues.x;
nVar = length(xi);
lb=-5.12;
ub=5.12;
%Choose a random solution xk. Next solution will be shifted towards xk in the neighbourhood of xi
xk=GenerateRandomSolution(nVar,lb,ub);
% choose a random dimension j to vector xk = the next solution vi will only be on dimension j direction in the neighbourhood
j= randi([1 nVar]);
% define neighbourhood coefficient and choose a random coefficient in neighbourhood size [-1 1]
q=1; % Neighbourhood diameter upper bound
phi=q*unifrnd(-1,+1);
% generate a new successor vi
vi=xi;
vi(j)=xi(j)+phi.*(xi(j)-xk(j));
if vi(j)>ub
vi(j)=ub;
elseif vi(j)<lb
vi(j)=lb;
end
end
and Error code is below:
>> successor(optimValues, ~)
successor(optimValues, ~)
↑
Error: Invalid expression. When calling a function or indexing a variable, use parentheses. Otherwise, check for
mismatched delimiters.
Please tell me how I can get past this.
thanks
2 件のコメント
回答 (2 件)
Walter Roberson
2019 年 11 月 1 日
You would get the error about not enough input arguments on the line
xi = optimValues.x;
under the circumstance that the optimValues you passed in is a function handle that needs at least one argument, and you are running R2019b or later.
0 件のコメント
Siriniharika Katukam
2019 年 11 月 1 日
Hi
Since you are using optimValues.x, optimValues must support dot indexing. The error in line 4 usually arise when optimValues.x is not initialized in optimValues. This means, may be your input optimValues is just a scalar.
1 件のコメント
Walter Roberson
2019 年 11 月 1 日
No, if the object does not supprot dot indexing you get
Dot indexing is not supported for variables of this type.
参考
カテゴリ
Help Center および File Exchange で Operations Research についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!