Jump to content
Sign in to follow this  
FF

Topic des Geeks

Recommended Posts

BenBDF est un geek...je comprends maintenant ses 1000 posts par mois... :grin:

je suis pas geek, j'ai seulement un brin de culture technologique :ninja:

Share this post


Link to post
je suis pas geek, j'ai seulement un brin de culture technologique :ninja:

Votre score est de : 1102

Vous faites partie des Reasonable Geeks

Pas mal... Un bon taux de geekitude coule dans vos veines, mais vous êtes encore trop sociable pour faire un bon geek. Débarrassez-vous des quelques amis qui ont l'outrecuidance de vous tirer hors de chez vous. :-p

et pourtant...le test est sans appel... :grin:

t'inquiètes pas il paraît que c'est fashion d'être guik :ninja:

Share this post


Link to post

Est-ce que quelqu'un sait, sous Matlab, soustraire un vecteur ligne à toutes les lignes d'une matrice, sans faire de boucle.

J'avais trouvé une solution en feintant avec la fonction "repmat" mais ça me semble plus long qu'avec une boucle.

:ninja:

Share this post


Link to post
Est-ce que quelqu'un sait, sous Matlab, soustraire un vecteur ligne à toutes les lignes d'une matrice, sans faire de boucle.

J'avais trouvé une solution en feintant avec la fonction "repmat" mais ça me semble plus long qu'avec une boucle.

:ninja:

Faut faire un noeud :unsure: enfin ... si le dernier vecteur ligne le permet évidemment.

Share this post


Link to post
Est-ce que quelqu'un sait, sous Matlab, soustraire un vecteur ligne à toutes les lignes d'une matrice, sans faire de boucle.

J'avais trouvé une solution en feintant avec la fonction "repmat" mais ça me semble plus long qu'avec une boucle.

:ninja:

tu dois pouvoir le multiplier à une matrice pour obtenir ce que tu veux c'est à dire la matrice composée de n fois le vecteur (enfin peut etre)

perso je code tout mes trucs moi meme sous matlab, j'arrive jamais a trouver la fonction que je cherche...

EDIT : non en fait c'est pas possible...

Share this post


Link to post

j'ai ma souris infra rouge qui ne marche plus, vous pensez que c'est la pile? :ninja:

Share this post


Link to post
tu dois pouvoir le multiplier à une matrice pour obtenir ce que tu veux c'est à dire la matrice composée de n fois le vecteur (enfin peut etre)

Plus ou moins ce que me fait le "repmat", non ?

Share this post


Link to post

ben en fait avec repmat c'est exactement ce que ca fait non?

un truc genre repmat(vecteur,m,n) ou n est la taille du vecteur...

Share this post


Link to post
Est-ce que quelqu'un sait, sous Matlab, soustraire un vecteur ligne à toutes les lignes d'une matrice, sans faire de boucle.

J'avais trouvé une solution en feintant avec la fonction "repmat" mais ça me semble plus long qu'avec une boucle.

:ninja:

Ahahaah, tu vas pouvoire t'amuser avec l'aide Matlab :unsure:

A chaque fois que je l'utilise, je passe plus de temps à l'aide qu'à coder -_-

Share this post


Link to post
Plus ou moins ce que me fait le "repmat", non ?

NP a édité, je lui ai fais comprendre qu'il écrivait des âneries :

"EDIT : non en fait c'est pas possible... "

Share this post


Link to post
Plus ou moins ce que me fait le "repmat", non ?

ben oui, c'est très bien ca et pas long...

tu fait matrice-repmat(vecteur,m,n)

en fait c'est pas m,n les arguments, j'avais mal compris la fonction c'est (1,n) ou (n,1) suivant si ton vecteur est ligne ou colonne

Share this post


Link to post
ben oui, c'est très bien ca et pas long...

tu fait matrice-repmat(vecteur,m,n)

en fait c'est pas m,n les arguments, j'avais mal compris la fonction c'est (1,n) ou (n,1) suivant si ton vecteur est ligne ou colonne

Oui voilà c'est ce que j'avais fait.

Ca marche très bien, c'est juste que c'est plus long qu'une simple boucle donc je réfléchissais s'il existait pas une ruse de sioux en jouant sur l'indexage des vecteurs/matrices.

Share this post


Link to post
Oui voilà c'est ce que j'avais fait.

Ca marche très bien, c'est juste que c'est plus long qu'une simple boucle donc je réfléchissais s'il existait pas une ruse de sioux en jouant sur l'indexage des vecteurs/matrices.

c'est plus long en quoi? Temps de calcul? longueur de codage? Ca m'etonne quand même que ca allonge les calculs par rapport à une boucle...

quand au codage, ca fait une ligne alors que la boucle...

Share this post


Link to post
c'est plus long en quoi? Temps de calcul? longueur de codage? Ca m'etonne quand même que ca allonge les calculs par rapport à une boucle...

quand au codage, ca fait une ligne alors que la boucle...

En temps de calcul c'est plus long.

Share this post


Link to post
En temps de calcul c'est plus long.

bon si tu le dis...

je vais reflechir à ton problème mais ca doit pas être très evident...

ca doit pouvoir se faire puisque en théorie des systeme d'equation, on peut coder l'operation retrancher la ligne 1 à la ligne l par une multiplication par une matrice.

Si tu colles ton vecteur en tête de ta matrice, il te reste plus qu'a calculer la matrice obtenue en multipliant toutes ces operations. Comme c'est précalculé, t'as juste à le faire une fois et après ca ne prend plus de temps dans ton programme...

Share this post


Link to post

Bon déjà en utilisant la fonction "meshgrid" c'est un peu plus rapide qu'avec "repmat" mais ça reste encore un poil plus long qu'avec la boucle.

Si tu colles ton vecteur en tête de ta matrice, il te reste plus qu'a calculer la matrice obtenue en multipliant toutes ces operations.

Comment tu calcules cette matrice ?

je vais reflechir à ton problème mais ca doit pas être très evident...

Sinon c'est pas grave du tout. C'était juste pour ma curiosité...

Allez, la suite sera pour demain.

Share this post


Link to post
Comment tu calcules cette matrice ?

en multipliant à gauche une matrice mxn par (Identité de taille mxm + un coefficient 1 en position i,j) ca doit ajouter la ligne i à la ligne j dans ta matrice mxn... enfin c'est un truc comme ça, faut tester pour voir si c'est bien ça mais il me semble. Mon seul doute est est ce que cette théorie ne s'applique au matrice carrées ou pas.

La aussi faudrait tester rapidos, on doit vite voir si on tombe sur un os ou pas.

Facile à voir est ce que (0 1)(0 0)*(1 2 3)(4 5 6) donne une des lignes de la matrice?

(0 1)(0 0) noté E1,2 (des zéros partout sauf en position 1,2 ou y'a un 1)

le résultat donne (4 5 6)(0 0 0)

donc (I2+E1,2)*(1 2 3)(4 5 6) donne (1 2 3)(4 5 6)+(4 5 6)(0 0 0)=(1+4 2+5 3+6)(4 5 6)

donc en fait multiplier à gauche par I2+E1,2 ajoute la deuxième ligne à la première de ta matrice si j'ai pas fait de conneries...

donc une fois que t'as compris ce principe, tu itères et ta matrice cherchée devrait être (In-E2,1)*(In-E3,1)*.... à calculer juste une fois (en fait c'est dans l'autre sens mais le produit doit commuter vu que les opérations impliquent des lignes disjointes)...

puis tu appliqueras cette matrice à la matrice formée en première ligne de ton vecteur puis du reste de ta matrice en dessous puis à la fin tu vires le vecteur en première ligne (facile à faire en Matlab).

Voilà, tout ça sous réserve que mes calculs de tête soient bons (dur de raisonner sur un PC!)

---------------------------------------------

voilà sur ce lien wikipedia à "Interprétation multiplicative" y'a un exemple clair :ninja:

http://fr.wikipedia.org/wiki/Op%C3%A9ratio...l%C3%A9mentaire

ou là sinon :

http://fr.wikipedia.org/wiki/Matrice_%C3%A9l%C3%A9mentaire

Share this post


Link to post

Tout ça me fait penser que dans un mois je vais me remettre au développement. :ninja:

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...