L'attribution de la légende dans la boucle for Matlab

J'ai essayé de donner la légende dans la boucle, mais il écrase le déjà écrit la légende, comment pouvez insérer soit dans si l'état ou soit dans la boucle for. Confus

    clear;
        vin=10
 for m=1:1:14;  

        vin=vin+10
    for i=1:1:27
        Wa_Ac = PVinv.CoreSizeModel();
        PVinv.CoreSelect(Wa_Ac,i);   
        loss_ind_core= PVinv.InductorLossModel(PVinv.m_L_Selected);

        if(i==1)
        p=plot(vin,loss_ind_core,'--gs');
        hold on
        end
        if(i==2)
        p=plot(vin,loss_ind_core,'--rs');
        end %...till i=27

        legend(obj.m_Core_List(i).name);
        xlim([10e3 90e3])
        set(gca,'XTickLabel',{'10';'20';'30';'40';'50';'60';'70';'80';'90'})
        grid on
        xlabel('Vin');
        ylabel('Power loss');
    end
 end

La fonction appelée

function obj = CoreSelect(obj, WaAc)
             obj.m_Core_Available= obj.m_Core_List(i);
            obj.m_L_Selected.m_Core = obj.m_Core_Available;

end 
Les réponses ci-dessous sont correctes à vous suggérons de déplacement de la légende à l'extérieur de votre for boucle. Je voudrais simplement ajouter que vous devez déplacer tous vos traçage de commandes, à l'exception plot à l'extérieur de la boucle. Par exemple, vous n'avez pas besoin de définir le x-/y-étiquettes sur chaque itération de la boucle, juste une fois à la fin de la boucle lorsque vous avez tracées toutes vos données.
Erreur:matrice de Cellules argument doit être une cellule de tableau de chaînes de caractères. En fait je boucle de 27 fois pour chaque m valeur.

OriginalL'auteur mirage | 2012-03-21