2016-08-08 16 views
-5

Jeder wird angewiesen, vektorisierte Programme wie MATLAB auszunutzen und anstelle einer for-Schleife Indizierung zu verwenden. B. in MATLAB, anstatt alle Elemente einer Matrix auf 0 in einer doppelten Schleife zu setzen, könnte ich M[1:N,1:N]=0; verwenden.Ist vektorisierte Datenmanipulation sequentiell (z. B. R und MATLAB)?

Meine Frage bezieht sich darauf, ob das sequenziell funktioniert? dh wenn ich etwas Zeilenvektor v der Größe N, und ich führen Sie die folgende Zeile

v[1:N-1]=v[2:N] 

werden dann Werte aktualisiert überall verwendet werden, oder es dauert eine „Momentaufnahme“ des Vektors, und fügen Sie, dass in der Vektor wieder in einem verschobenen Index?

Ich würde es so sequentialy zu tun, damit die Werte aus dem Boden zuerst aktualisiert werden und dann wieder verwendet für Werte oberhalb etc

+1

Ich verstehe nicht, was Sie fragen. Gebraucht in was? – excaza

+0

Hallo. Wird während der gesamten verbleibenden Zuweisung von Werten verwendet. Ich möchte, dass es die follwoign-Schleife im Wesentlichen macht: für I = 1: N-1 v [i] = v [i + 1] Ende Aber ohne die Gemeinkosten einer for-Schleife – Quant525

+0

Ich denke, der "Schnappschuss" Analogie ist nahe genug. Aber eine Operation ist eine Operation. –

Antwort

0

Es funktioniert, als ob alles auf der rechten Seite, bevor irgendetwas auf das geschieht linke Seite, effektiv das "Schnappschuss" -Ding, aber mit wahrscheinlich besserer Speichereffizienz. In Wirklichkeit kann es sich wiederholen, oder es kann einen "Schnappschuss" machen, aber aufgrund der Abstraktion muss man das nicht wirklich wissen oder sich darum kümmern.

So wäre das Ergebnis so etwas wie wie folgt:

v=[1 2 3 4 5 6]; 
v[1:5]=v[2:6]; 
disp(v) 

    v = 
     [2 3 4 5 6 6] 

Ist das, was Sie wollen?

+0

Vielen Dank für Ihre Antwort. Macht Sinn. Ich möchte eigentlich aktualisierte Werte verwenden. Also möchte ich, dass es so funktioniert, als wäre es eine Schleife, die den neuen Wert in jeder Iteration verwendet, aber effizienter ist. – Quant525

Verwandte Themen