Matlab未定义变量“txt”或类“txt”

时间:2013-10-04 14:30:33

标签: matlab class variables undefined

我在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或我应该怎么做才能解决这个问题

1 个答案:

答案 0 :(得分:0)

我猜你的情况if Pax(i,j) >= cplex.Param.mip.tolerances.integrality.Cur永远不会是真的,所以txt永远不会被定义,当你试图将它作为legend函数调用的参数时,它是正确的错误,因为它不存在。

在不等式测试之前/之后设置一个断点,检查你的变量是否符合预期。还要检查不平等是否成立。