MATLAB Answers

Declared variable shown as undefined

2 views (last 30 days)
Divyayan Dey
Divyayan Dey on 23 May 2020
Commented: Divyayan Dey on 23 May 2020
I have a cost function hybrid_cost() defined for optimization. Howver, with N defined, the function hybrid_cost() on running shows -
Undefined function or variable 'N'
Even after declaring N as global, the problem persists.
N=4;
function cost=hybrid_cost(x)
cost=0;
T1=0;
q=zeros(N);
q(1,1)=x(1);
q(N,N)=x(2);
M=create_M(x);
Ai=M+q;
A=zeros(N);
for i=1:P
A=Ai+eyes(size(M,1))*st(i);
c=abs(cof(A,1,N))^2;
T1=T1+c;
end
T1=4/(q1*qn) * T1;
cost=T1;
end

Answers (1)

KSSV
KSSV on 23 May 2020
N=4;
function cost=hybrid_cost(x,N)
cost=0;
T1=0;
q=zeros(N);
q(1,1)=x(1);
q(N,N)=x(2);
M=create_M(x);
Ai=M+q;
A=zeros(N);
for i=1:P
A=Ai+eyes(size(M,1))*st(i);
c=abs(cof(A,1,N))^2;
T1=T1+c;
end
T1=4/(q1*qn) * T1;
cost=T1;
end
The variable N, should be passed to a function as shown above. Though you have defined the variable outside the function, it cannot be found inside the function unless you declare N as gloabal variable.
  5 Comments

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!