Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1692 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  Matlab : Faire une fonction avec des matrices plutôt qu'une boucle for

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Matlab : Faire une fonction avec des matrices plutôt qu'une boucle for

n°2245830
Laska-
Posté le 12-12-2014 à 01:33:57  profilanswer
 

Bonsoir
J'ai un petit souci dans matlab
Je dois coder une fonction par morceaux.
J'ai un vecteur x, je veux pour chaque élément de x appliquer une fonction définie par morceaux.
La méthode intuitive consistant à dire que je vais créer une fonction de R dans R et qu'ensuite matlab va tout seul comme un grand considérer que f(1,2)=(f(1),f(2)) n'a pas fonctionné.. Du coup j'ai du utiliser la boucle for

 

function tt = tata( x )
l=length(x)

 

for i=1:l

 

if x(i)<-300
tt(i)=-1000
elseif x(i) < -10
etc...
else
    tt(i)=1000

 

end
end
tt

 

end

  

Seul souci : mon vecteur x est de longueur 18 000 !
Un simple calcul tata(x) prend à peu près 10 minutes..

 

Comment écrire cette fonction de manière rapide ?

 

Merci

 

P.S. : le top du top : quand j'écris pour terminer mon calcul cette ligne :
xc=bx100 +tata(bdbx)
il me dit que bx100 et tata(bdbx) n'ont pas la même longueur ! Alors que tous les deux sont exactement de longueur 18000, je viens de perdre 10 minutes de calcul pour le vérifier :o
Merci de votre aide


Message édité par Laska- le 12-12-2014 à 01:35:19
mood
Publicité
Posté le 12-12-2014 à 01:33:57  profilanswer
 

n°2246274
baykah
Terriblement efficace ..
Posté le 16-12-2014 à 17:25:29  profilanswer
 

Salut,
 
Je pense qu'il faut partir sur cela
 
function tt = tata( x )
 
tt = zeros(length(x),1)
 
tt( x < -300 )= -300;
tt( x < -10 )= -10;
 
etc...
 
tt( x == 0 )= -1000;


Message édité par baykah le 16-12-2014 à 17:40:23

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  Matlab : Faire une fonction avec des matrices plutôt qu'une boucle for

 

Sujets relatifs
Une sélection de cellule en fonction de la position d'un bouton..Suppression ligne en fonction du format d'une cellule
Compteur population mondiale en C (en fonction du temps)Batch : Faire une boucle de recherche de répertoire
Fonction de hachage en python[MATLAB] Algorithme ressortissant les plus courts chemins
Boucle de macro en échecboucle pour creer une énumération
[Excel VBA]Fonction Rank ignorer cellule vide et passer à la suivanteEnvois d'un double tableau à une fonction
Plus de sujets relatifs à : Matlab : Faire une fonction avec des matrices plutôt qu'une boucle for


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR