Azzera filtri
Azzera filtri

Info

Questa domanda è chiusa. Riaprila per modificarla o per rispondere.

Where did i mess those "for-loops" up?

1 visualizzazione (ultimi 30 giorni)
andreas
andreas il 17 Lug 2013
Chiuso: MATLAB Answer Bot il 20 Ago 2021
" matrixg" is a 3d array, which contains incidence matrices of Graphs with 7 edges. This program should eliminate all Graphs which have a circle with 3 vertices.
I included a counter "g" and because of it, i think he realizes isomorphy as often as i think it should (19) times. Unfortunately the 3d-matrix H at then end still has size 33.
I think i either closed on "for" too early. But somehow i can't fix it myself.
clc
D=sparse([1 1 2],[2 3 3],true,3,3);
load('matrixg.mat')
c=[0 0 0 0 0 0 0];
a=1;
g=0;
[~, ~, z]=size(G);
for l=1:z
zaehler=0;
for i=1:7
%T1=[G(:,:,l) ; c];
T1=sparse(G(:,:,l));
T1(:,i)=[];
T1(i,:)=[];
for k=1:6
T2=T1;
T2(:,k)=[];
T2(k,:)=[];
for l=1:5
T3=T2;
T3(:,l)=[];
T3(l,:)=[];
for m=1:4
T=T3;
T(:,m)=[];
T(m,:)=[];
[F1] = graphisomorphism(T+T',D+D','directed', false);
if F1==1
zaehler=1;
g=g+1;
end
end
if zaehler==1
break
end
end
if zaehler==1
break
end
end
if zaehler==1
break
end
end
if zaehler==0
H(:,:,a)=G(:,:,l);
%view(biograph(H(:,:,a)));
a=a+1;
end
end
  1 Commento
dpb
dpb il 18 Lug 2013
a=1;
g=0;
for l=1:z
zaehler=0;
for i=1:7
...
for k=1:6
...
for l=1:5
...
for m=1:4
....
[F1] = graphisomorphism(T+T',D+D','directed', false);
if F1==1
zaehler=1;
g=g+1;
break % LOOKS TO ME LIKELY NEED THIS....
end
end
if zaehler==1, break, end
end
if zaehler==1, break, end
end
if zaehler==1, break, end
end
if zaehler==0
H(:,:,a)=G(:,:,l);
a=a+1;
end
end
I recast your code a little including indenting uniformly and replacing the multi-line 'break' clauses w/ single to make flow easier to follow (imo such are better w/o the additional nesting).
It appears to me you likely need the additional break when first find the case in the innermost loop.
Otherwise, set up a dataset that has only a couple cases and use the debugger to step through and see where it isn't branching as you think should...

Risposte (0)

Questa domanda è chiusa.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by