[Matlab] Voyageur de commerce début d'algo

Nephal -  
 nephal336 -
Bonjour, je suis actuellement en train de bosser sur un Projet Matlab sur le thème "Voyageur de Commerce"

Petite explication: Je commence en important un fichier texte sur Matlab pour obtenir :
Lille Amiens 150

Amiens Paris 160

Lille Paris 200

Je dois ensuite créer un programme pour obtenir les deux tableaux suivants :

Lille 1

Amiens 2

Paris 3

ainsi que :

0 1 2 3
1 0 150 200
2 150 0 160
3 200 160 0

J'aimerais votre aide pour pouvoir améliorer cette partie du projet, pour faire un peu moins "bébé" et pouvoir ajouter facilement une nouvelle destination aux tableaux..

Voici actuellement ce que j'ai fais

fid=fopen('C:\mat\data.txt','r');
k=fscanf(fid,'%c')
ville1='Lille';
ville2='Amiens';
ville3='Paris';
Lille=1;
Amiens=2;
Paris=3;
%distance Lille Amiens%
d1=150;
%distance Amiens Paris%
d2=160;
%distance Paris Lille%
d3=200;
fid2=fopen('C:\mat\data2.txt','wt');
fprintf(fid2,'%s\t','Lille');
fprintf(fid2,'%i\n',Lille);
fprintf(fid2,'%s\t','Amiens');
fprintf(fid2,'%i\n',Amiens);
fprintf(fid2,'%s\t','Paris');
fprintf(fid2,'%i\n',Paris);
fid2=fopen('C:\mat\data2.txt','r');
k2=fscanf(fid2,'%c')
fclose(fid2);
K=zeros(4,4);
K(1,2)=1;
K(1,3)=2;
K(1,4)=3;
K(2,1)=1;
K(3,1)=2;
K(4,1)=3;
n=2;
m=2;
for n=2:4;
for m=2:4;
if n==2;
if m==2;
K(n,m)=0;
else if m==3;
K(n,m)=d1;
else K(n,m)=d3;
end
end
else if n==3;
if m==2;
K(n,m)=d1;
else if m==3;
K(n,m)=0;
else K(n,m)=d2;
end
end
else if n==4;
if m==2;
K(n,m)=d3;
else if m==3;
K(n,m)=d2;
else K(n,m)=0;
end
end
end
end
end
end
K
end


Merci :)

1 réponse

nephal336 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
petit up :)
0
nephal336 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
up
0
nephal336 Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
Je tiens a préciser que je suis également débutant et j'ai du me débrouiller plus ou moins pour travailler les fscanf fopen fprint
0
nephal336
 
up
0