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:
RE: Probleme mit do-Schleife
Wolf, Hartmut, 16.02.2005
Verweise:
Probleme mit do-Schleife
Christine Ebling, 10.02.2005

Frühere

 

Chronologischer Index

 

Spätere

Vorherige

 

Thematischer Index

 

Nächste

DMUG-Archiv, http://www.mathematica.ch/dmug-liste.html; Letzte Änderung: 16.02.2005 15:54