Code source Triangle de Pascal Matlab

Résolu/Fermé
Michelangelo - 22 avril 2008 à 23:03
 dhia - 1 févr. 2017 à 20:34
Bonjour,
Je me permet de vous demander un petit service.
Je cherche à réaliser la fonction 'Triangle de Pascal' dans Matlab, sans utiliser celle toute prête
1
11
121
1331
14641
.........

je pense qu'il faut faire comme cela, mais je suis dans le flou, le plus total :
function[Y]=Pascal(3) %c'est la déclaration de la fonction pascal, afin de la lancer après 

for (i=1;i++;i<=X) 
{ 
créer nouvelle ligne dans la matrice 
Pascal[n][1] = 1 
pascal[n][m] = pascal[n-1][m] + pascal[n-1][m-1] 
pascal[n][X] = 1 
}


X étant le rang pour lequel on veut que le triangle soit généré
n : le numéro de la ligne dans la matrice qui forme le triangle
m : le numéro de la colonne

arf désolé du mélange ignoble Matlab, C et humain
A voir également:

4 réponses

Sacabouffe Messages postés 9427 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009 1 832
22 avril 2008 à 23:47
Salut
function Y=pascalmat(X)
Y=zeros(X);
Y(1,1)=1;
for p=2:X
    Y(p,:)=Y(p-1,:)+circshift(Y(p-1,:),[0 1]);
end

A plus
1
Michelangelo
23 avril 2008 à 00:01
Merci, j'attends de retrouver le poste qui a le logiciel d'installer pour essayer cela
en attendant je vais étudier le script que tu m'as proposé.

Merci encore
0
Sacabouffe Messages postés 9427 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009 1 832 > Michelangelo
23 avril 2008 à 00:21
De rien
Bonne nuit
0
Mé6 bcp !!!!!
0
function [A]=p(k)
for i=1 : k
for j=1:k
if((j-1)==0 | (i-1)==0)
A(i,j)=1;
else A(i,j)=A(i,j-1)+A(i-1,j);
end
end
end

pour la matrice de pascal mais tu dois pas confondre les boucle de Langage C avec celle de MATLAB
0
%Ecriture basique sans test :

function Pascal_triangle(N)
P=zeros(N,N);
for i=1:N
P(i,i)=1;
P(i,1)=1;
end
for i=3:N
for j=2:N
P(i,j)=P(i-1,j-1)+P(i-1,j)
end
end
P
0
procedure triang(var m:mat ; n:integer);
begin
m[1,1]:=1;
m[2,1]:=1;
m[2,2]:=1;
for l := 3 to n do
begin
m[l,1]:=1;
m[l,l]:=1;
for c := 2 to l-1 do
begin
m[l,c]:=m[l-1,c]+m[l-1,c-1];
end;
end;
end;
0