DMUG-Archiv 2005

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: Probleme mit do-Schleife

Christine Ebling wrote:

Hallo!

Ich habe Probleme mit einer do-Schleife. Konkret:


Ich habe einen Vektor yvec, dem ich eine Matrix yperm zuordnen will

yvec:

1
3
0
5
2
0
4

yperm:

1      0      0      0      0
0      0      1      0      0
0      0      0      0      0
0      0      0      0      1
0      1      0      0      0
0      0      0      0      0
0      0      0      1      0


In Gauss funktioniert das mit "yperm=zeros(7,5); i=1; do while i<=7; if
yvec[i]>0;yperm[i,yvec[i]]=1; endif; i=i+1; endo;"



Versuche ich nun eine ähnliche Schleife in Mathematica zu schreiben

"yperm = Table[0, {7},{5}];
Do[if[yvec[[i]] > 0, yperm[[i, yvec[[i]]]] = 1, yperm[[i, 1]] = 0], {i,
     nobs}];"


so kommt leider nichts Ordentliches raus. Was mache ich falsch?  Kann mir
irgendjemand weiterhelfen?

Herzlichen Dank im Voraus!

Christine Ebling




Hallo,

Jens hat natürlich völlig Recht, aber etwas typischer für Mathematica wäre z.B.:

yvec = {1, 3, 0, 5, 2, 0, 4};

hilfsvec = Join[{1}, Table[0, {Max[yvec]}]];
yperm = (Rest[RotateRight[hilfsvec, #]] & /@ yvec);
yperm // TableForm

1      0      0      0      0
0      0      1      0      0
0      0      0      0      0
0      0      0      0      1
0      1      0      0      0
0      0      0      0      0
0      0      0      1      0


--
Peter Pein
Berlin



Antworten:
Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html