-2

matlab Undefined variable "txt" or class "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 が 2 回あります。最初に txt{n}= ..... そして、凡例関数で使用されます。txtを何と呼ぶべきか、これを解決するにはどうすればよいですか

4

1 に答える 1

0

あなたの条件if Pax(i,j) >= cplex.Param.mip.tolerances.integrality.Curは決して真ではないと推測しているので、txt決して定義されず、関数呼び出しの引数として使用しようとすると、legend存在しないため、当然のことながらエラーになります。

不等式テストの前後にブレークポイントを置き、変数が期待どおりであることを確認します。また、不等式が成り立つかどうかを確認します。

于 2013-10-04T15:01:52.177 に答える