supprimer une ligne d'une matrice
19 posts
• Page 1 of 2 • 1, 2
supprimer une ligne d'une matrice
bonjour, je suis en train de créer un programme, et depuis tout à l'heure, je chercher une commande qui permet de supprimer une ligne d'une matrice, mais je n'en trouve pas, alors pouvez-vous me dire s'il existe une commande pour supprimer une ligne svp ?
-
alexprime100
Niveau 4: MC (Membre Confirmé)- Posts: 19
- Joined: 15 May 2014, 18:33
- Gender:
- Calculator(s):→ MyCalcs profile
Re: supprimer une ligne d'une matrice
Y'a plusieurs solutions, mais aucune n'est simple à proprement parler. À mes souvenirs en tout cas, il n'existe pas de fonction pour supprimer une ligne ou une colonne.
Ma solution serait alors de tout décaler, avec une boucle For(A,LigneASupprimer,FinDeLaMatrice-1) en faisant [A](A+1,1)->[A](A,1) etc...
Il existe surement plein d'autres façon de le faire par contre
Ma solution serait alors de tout décaler, avec une boucle For(A,LigneASupprimer,FinDeLaMatrice-1) en faisant [A](A+1,1)->[A](A,1) etc...
Il existe surement plein d'autres façon de le faire par contre
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.
Unis par la flèche sacrée de cupidon
Unis par la flèche sacrée de cupidon
-
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 1160
- Images: 4
- Joined: 08 Dec 2014, 17:38
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Ensimag
- GitHub: MathisLav
Re: supprimer une ligne d'une matrice
mais si j'applique cette boucle sur une matrice n*m, est ce que ça devient une matrice (n-1)*m ?
-
alexprime100
Niveau 4: MC (Membre Confirmé)- Posts: 19
- Joined: 15 May 2014, 18:33
- Gender:
- Calculator(s):→ MyCalcs profile
Re: supprimer une ligne d'une matrice
Non, ça déplace juste les éléments si la ligne à supprimer n'est pas à la fin. Il faut ensuite enlever 1 à la dimension de la matrice, mais sur nspire je ne sais pas comment faire...
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.
Unis par la flèche sacrée de cupidon
Unis par la flèche sacrée de cupidon
-
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 1160
- Images: 4
- Joined: 08 Dec 2014, 17:38
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Ensimag
- GitHub: MathisLav
Re: supprimer une ligne d'une matrice
Sinon, une bonne vieille multiplication matricielle
- Code: Select all
1 0 0 0 a b c d a b c d
0 0 1 0 * e f g h = i j k l
0 0 0 1 i j k l m n o p
m n o p
Pokemon Topaze (Axe) discussion and download links here | (19:29:36) noelnadal: plus sérieusement, j'ai très peu de problèmes (22:45:44) Clifward: J'aime rire du malheur des autres (2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!! (2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked). (2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked. (2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat. (2017.11.18 - 17:07:28) Fireworks: <3 (2017.11.18 - 17:07:31) Fireworks: 208 |
-
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)- Posts: 2509
- Images: 2
- Joined: 30 Aug 2011, 08:22
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Templar
Re: supprimer une ligne d'une matrice
finalement j'ai réussi à trouver une solution, j'ai créé une nouvelle matrice plus petite dans laquelle j'ai copié les éléments à garder avec une boucle.
-
alexprime100
Niveau 4: MC (Membre Confirmé)- Posts: 19
- Joined: 15 May 2014, 18:33
- Gender:
- Calculator(s):→ MyCalcs profile
-
Hamza.SAdmin
Niveau 17: GM (Grand Maître des calculatrices)- Posts: 4501
- Images: 18
- Joined: 07 Nov 2014, 00:43
- Gender:
- Calculator(s):→ MyCalcs profile
Re: supprimer une ligne d'une matrice
On peut le faire aussi en utilisant les fonctions
submat
et augment
-
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)- Posts: 5670
- Joined: 11 Mar 2008, 00:00
- Location: Lyon
- Gender:
- Calculator(s):→ MyCalcs profile
Re: supprimer une ligne d'une matrice
Hayleia wrote:Sinon, une bonne vieille multiplication matricielle
- Code: Select all
1 0 0 0 a b c d a b c d
0 0 1 0 * e f g h = i j k l
0 0 0 1 i j k l m n o p
m n o p
très bonne idée ! Merci Hayleia
j'utilise ta méthode dans le code ci-dessous d'une fonction dénommée supp(i,j,x)
où x est une np-matrice à composantes réelles (pour des composante complexe il faut legerement modifier le code mais c'est facile il suffit de remplacer x^T par conj(x^T)
bon alors il s'agit de supprimer la i ème ligne et la j ième colonne d'une matrice à composante réelles
lorsque i=0 aucune ligne est supprimée et lorsque j=0 aucune colonne est supprimée
cette fonction utilise une autre fonction : le code de ces deux fonctions sont donnés ici
- Code: Select all
Define supp(i,j,x)=
Func
Local ligne1,ligne2,var,var0,var1,var2,var3,u,id,v,y,z,nul,k
var3:=0
var2:=1
y:=x
v:=y
ligne1:=1
ligne2:=2
If i ≠ 0 Then
k:=i
Goto ligne1
EndIf
If j=0 Then
Goto ligne2
EndIf
k:=j
v:= y^T
var3:=1
Goto ligne1
Lbl ligne1
var:=dim(v)
var1:=var[1]
var0:=var1-1
nul:=newMat(var0,1)
id:=canon(var0)
var:=0
While var<var1
var:=var+1
If var = 1 and var=k Then
u:=nul
EndIf
If var ≠ 1 and var=k Then
u:=augment(u,nul)
EndIf
If var = 1 and var ≠ k Then
u:=(id^T[var2])^T
var2:=var2+1
EndIf
If var ≠ 1 and var ≠ k Then
u:=augment(u,(id^T[var2])^T)
var2:=var2+1
EndIf
EndWhile
If var3=0 Then
y:=u.y
k:=j
v:=y^T
var2:=1
EndIf
If var3=1 Then
y:=y.u^T
EndIf
var3:=var3+1
If var3=2 Then
Goto ligne2
EndIf
If j=0 Then
Goto ligne2
EndIf
Goto ligne1
Lbl ligne2
z:=y
Return z
EndFunc
et ci-dessous la fonction canon(n)
- Code: Select all
Define canon(n)=
Func
Local var,id
id:=newMat(n,n)
var:=1
While var ≤ n
id[var,var]:=1
var:=var+1
EndWhile
Return id
Endfunc
-
alphaméthyste
Niveau 7: EP (Espèce Protégée: geek)- Posts: 51
- Joined: 03 May 2015, 16:11
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: L1 maths
Re: supprimer une ligne d'une matrice
@alphaméthyste : Ta fonction
@alexprime100 :
C'est sans doute la méthode la plus performante.
Voici un code qui le fait :
canon(n)
ne sert à rien : elle existe déjà sur la calculette. C'est identity(n)
.@alexprime100 :
finalement j'ai réussi à trouver une solution, j'ai créé une nouvelle matrice plus petite dans laquelle j'ai copié les éléments à garder avec une boucle.
C'est sans doute la méthode la plus performante.
Voici un code qui le fait :
- Code: Select all
Define supp(i,j,x)=
Func
Local rep,ligne,n,p,k,l
n:=rowdim(x)
p:=coldim(x)
rep := {}
For k,1,n
If k ≠ i Then
ligne := {}
For l,1,p
If l ≠ j
ligne := augment(ligne, {x[k,l]})
EndFor
If rep = {} Then
rep := {ligne}
Else
rep := augment(rep, {ligne})
EndIf
EndIf
EndFor
Return rep
EndFunc
-
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)- Posts: 5670
- Joined: 11 Mar 2008, 00:00
- Location: Lyon
- Gender:
- Calculator(s):→ MyCalcs profile
19 posts
• Page 1 of 2 • 1, 2
Who is online
Users browsing this forum: ClaudeBot [spider] and 0 guests