<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<!DOCTYPE MAN SYSTEM "../../manrev.dtd">
<MAN>
  <LANGUAGE>fr</LANGUAGE>
  <TITLE>mtlb_find</TITLE>
  <TYPE>Fonction M2SCI</TYPE>
  <DATE>Avril 2004</DATE>

  <SHORT_DESCRIPTION name="mtlb_find">Fonction d'émulation de la fonction Matlab find</SHORT_DESCRIPTION>

  <DESCRIPTION>

    <P>Dans plusieurs cas particuliers, la fonction <VERB>find</VERB> se comporte différemment dans Matlab et dans Scilab :</P>

    <DESCRIPTION_INDENT>
    <DESCRIPTION_ITEM>
    <ITEMIZE>
      <ITEM>
        <SP>
        Avec un paramètre d'entrée qui est un vecteur colonne ou une matrice :  La fonction Matlab <VERB>find</VERB>
	retourne un(des) vecteur(s) colonne alors que Scilab retourne un(des) vecteur(s) ligne.
        </SP>
      </ITEM>

      <ITEM>
        <SP>
        Avec trois paramètres de sortie : La fonction Matlab <VERB>find</VERB> peut retourner trois valeurs
	mais pas la fonction Scilab.
        </SP>
      </ITEM>
    </ITEMIZE>
    </DESCRIPTION_ITEM>
    </DESCRIPTION_INDENT>

    <P>
    La fonction <VERB>[i[,j[,v]]] = mtlb_find(B)</VERB> est utilisée par
    <VERB>mfile2sci</VERB> pour remplacer <VERB>[i[,j[,v]]] = find(B)</VERB> quand il n'était pas
    possible de savoir ce qu'étaient les paramètres d'entrée pendant la conversion d'un code Matlab vers Scilab. Cette fonction va
    déterminer la sémantique correcte pendant l'exécution. Pour obtenir un code plus performant
    on peut remplacer les appels à <VERB>mtlb_find</VERB> :
    </P>

    <DESCRIPTION_INDENT>
    <DESCRIPTION_ITEM>
    <ITEMIZE>
      <ITEM>
        <SP>
        Pour un appel avec un seul paramètre de sortie, si <VERB>B</VERB> est un vecteur ligne,
        <VERB>i = mtlb_find(B)</VERB> peut être remplacé par <VERB>i = find(B)</VERB>
        </SP>
      </ITEM>

      <ITEM>
        <SP>
        Pour un appel avec un seul paramètre de sortie, si <VERB>B</VERB> n'est pas un vecteur ligne,
        <VERB>i = mtlb_find(B)</VERB> peut être remplacé par <VERB>i = matrix(find(B),-1,1)</VERB>
        </SP>
      </ITEM>

      <ITEM>
        <SP>
        Pour un appel avec deux paramètres de sortie, si <VERB>B</VERB> est un vecteur ligne,
        <VERB>[i,j] = mtlb_find(B)</VERB> peut être remplacé par <VERB>[i,j] = find(B)</VERB>
        </SP>
      </ITEM>

      <ITEM>
        <SP>
        Pour un appel avec un seul paramètre de sortie, si <VERB>B</VERB> n'est pas un vecteur ligne,
        <VERB>[i,j] = mtlb_find(B)</VERB> peut être remplacé par 
	<VERB>[i,j] = find(B);i = matrix(i,-1,1);j = matrix(j,-1,1);</VERB>
        </SP>
      </ITEM>
    </ITEMIZE>
    </DESCRIPTION_ITEM>
    </DESCRIPTION_INDENT>

    <P>Attention : <VERB>mtlb_find</VERB> ne doit pas être utilisée pour une programmation manuelle.</P>

  </DESCRIPTION>

  <AUTHORS>
    <AUTHORS_ITEM>V.C.</AUTHORS_ITEM>
  </AUTHORS>
</MAN>
