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

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

  1. petit up :)
    0
    1. up
      0
    2. 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
    3. up
      0