Undefined function or variable

3 次查看(过去 30 天)
I am getting this error even though I have defined the "mat" function in my code. "Undefined function or variable 'mat'." I did some research but I can't find the reason. Because the code is too long, I do not share it all, but I share the relevant part below. other parts of the code are working.
Thanks in advance for your answers.
counter=0;
converg=1;
while converg>0.01;
for j = 2:n-1
min = 1000;
for l = 2:m-1
if number(j,l)~=0 && number(j,l) < min
min = number(j,l);
end
end
for i = 2:m-1
if index(j,i)~=0
n2 = number(j,i);
n1 = n2 - min +1;
if n1 == 1
mat(n1,n1) = C(j,i);
mat(n1,n1+1) = E(j,i);
d(n1,1) = (-1) * (P(j-1,i) * N(j,i)+P(j+1,i)*S(j,i))+Q(j,i);
end
if n1 == max(number(j,:)) - min +1
mat(n1,n1) = C(j,i);
mat(n1,n1-1) = W(j,i);
d(n1,1) = (-1) * (P(j-1,i) * N(j,i)+P(j+1,i)*S(j,i))+Q(j,i);
end
if n1~=1 && n1 ~= max(number(j,:))-min+1
mat(n1,n1) = C(j,i);
mat(n1,n1-1) = W(j,i);
mat(n1,n1+1) = E(j,i);
d(n1,1) = (-1) * (P(j-1,i) * N(j,i)+P(j+1,i)*S(j,i))+Q(j,i);
end
end
end
Pwf = thm(mat,d);
for i = 2:m-1
if index(j,i)~=0
n2 = number(j,i);
n1 = n2 - min +1;
P(j,i) = Pwf(n1,1);
end
end
clear Ps
clear mat
clear d
end
Pdiff = abs(Pold - P);
converg = max(max(Pdiff));
Pold = P;
counter = counter + 1
end
  5 个评论
Walter Roberson
Walter Roberson 2021-1-10
min = number(j,l);
We recommend against using min or max as the names of variables, as it is very common to find that later in the same function one wants to use the min() or max() function. It also confuses readers, who would have to look carefully at the flow of code

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Get Started with Simulink 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by