Code matlab to c

karkar2011 Messages postés 9 Statut Membre -  
damlegone32 Messages postés 75 Statut Membre -
Bonjour,



j'ai un programme en matlab, je vais le converti en c ou c++;Est ce que vous pouvez m'aidez svp c'esttrés urgent.
voila le fichier matlab:
clear;
load capacity_phy.dat
C=capacity_phy;
net_size=size(C);
N=net_size(1);
max_th=zeros(N,N);
tree=zeros(N,N);
for i=1:N
visited=[];
not_visited=zeros(N,1);
for j=1:N
not_visited(j)=j;
tree(i,j)=i;%Au debut, tous les sommets sont accessibles a partir de i.
end
%Debut de Dijkstra pour le Maximum Throughput Path MTP avec i comme sommet.
visited=[visited;i];
not_visited(i)=0;
max_th(i,:)=C(i,:);%Au debut, le MTP entre i et j est le chemin direct.
not_visited_cap=max_th(i,:);
while (any(not_visited))%Repeter tant que not_visited n'est pas vide.
[m,S]=max(not_visited_cap);%S contient les sommets qui realisent le MTP.
s=S(1);% S'il y a plus d'un sommet, on prend le premier.
visited=[visited;s];
not_visited(s)=0;
not_visited_cap(s)=0;
for t=1:N
if not_visited(t)~=0
if C(s,t)~=0 %Pour tous les sommets t relies directement a s
if max_th(i,s)<C(s,t)
x=max_th(i,s);
else
x=C(s,t);
end
if max_th(i,t)<x
max_th(i,t)=x;
not_visited_cap(t)=x;
tree(i,t)=s;
end
end
end
end
end
end
movefile('capacity_log.dat','capacity_log1.dat')
fid=fopen('capacity_log.dat','w');
for i=1:N
for j=1:N
fprintf(fid,'%d \t',max_th(i,j));
end
fprintf(fid,'\n');
end
fclose(fid);
movefile('mtp_tree.dat','mtp_tree1.dat')
fid=fopen('mtp_tree.dat','w');
for i=1:N
for j=1:N
fprintf(fid,'%d \t',tree(i,j));
end
fprintf(fid,'\n');
end
fclose(fid);

1 réponse

damlegone32 Messages postés 75 Statut Membre 29
 
Si tu comprends Matlab et le C tu y arriveras tout seul. Si tu ne comprends pas un des deux langages (ou même les deux) c'est peine perdue. Et n'espère pas que tu vas trouver quelqu'un sur ce forum pour le faire à ta place...
0