我在matlab中遇到了这个错误 未定义的变量“txt”或类“txt”。 我知道我应该定义txt来解决问题。最大的问题是我不知道txt是什么。我试过txt = 1,但这没用。我现在有这个代码
clr = [0 0 0 ; 1 0 0 ; 0 1 0 ; 0 0 1 ; 1 1 0 ; 1 0 1 ; 0 1 1];
style = [{'-'} {':'} {'--'} {'-.'}];
nc = 1;
ns = 1;
n = 1;
l(n) = 1;
close all
p = plot(XX,YY,'ro','MarkerFaceColor','b','MarkerSize',20);
axis equal
V = axis;
r_x = (V(2) - V(1))/ 20;
r_y = (V(4) - V(3))/ 20;
axis([V(1)-r_x V(2)+r_x V(3)-r_y V(4)+r_y]);
hold on
for i=1:airports
t(i) = text(XX(i),YY(i),['\bfA'num2str(i)],'HorizontalAlignment','Center','VerticalAlignment','Middle','Color','w');
for j= 1:airports
j=1;
if Pax(i,j) >= cplex.Param.mip.tolerances.integrality.Cur
l(n) = line([XX(i) XX(j)],[YY(i) YY(j)],'Color',clr(nc,:),'LineStyle',style{ns},'LineWidth',Flights(i,j));
nc = nc + 1;
if nc > size(clr,1)
ns = ns + 1;
nc = 1;
end
txt{n} = ['A' num2str(i) '\leftrightarrow' 'A' num2str(j) ', ' num2str(Pax(i,j)) ' Pax, ' num2str(Flights(i,j)) ' Flight(s)'];
n = n + 1;
end
end
n = (n - 1);
legend(l(1:n),txt{1:n},'Location','EastOutside');
uistack(p,'top');
uistack(t,'top');
set(gcf,'Units','Centimeters');
set(gcf,'Position',[10 2 25 16]);
txt有两次。首先是txt {n} = .....然后它在图例功能中使用。 我该怎么称呼txt或我应该怎么做才能解决这个问题
答案 0 :(得分:0)
我猜你的情况if Pax(i,j) >= cplex.Param.mip.tolerances.integrality.Cur
永远不会是真的,所以txt
永远不会被定义,当你试图将它作为legend
函数调用的参数时,它是正确的错误,因为它不存在。
在不等式测试之前/之后设置一个断点,检查你的变量是否符合预期。还要检查不平等是否成立。