2010-12-30 8 views

Antwort

2

Die Idee ist meshgrid zu verwenden zwei Arrays der Größe n x T zu erstellen:

[n_mesh, t_mesh] = meshgrid(a, 1:T); 

Nun n_mesh ist ein Array, wobei jede Reihe ein Duplikat von a ist, und t_mesh ist ein Array, wobei jede Spalte 1:T ist.

Jetzt können Sie ein Element weisen Betrieb auf sie verwenden, zu schaffen, was Sie brauchen:

aNew = n_mesh .^ t_mesh; 
+0

Danke Nathan, ziemlich coole Lösung. Greets und Happy New Year – user558213

7

So möchten Sie verschiedene Potenzen von a, die alle in einen Vektor aufgereiht? Ich würde ein Array erstellen, wobei jede Spalte des Arrays eine andere Potenz von a hat. Dann zeichne es in einen Vektor. So etwas wie dies ...

aNew = bsxfun(@power,a,1:T); 
aNew = aNew(:); 

Das tut, was Sie wollen, in einer einfachen und effizienten Art und Weise. bsxfun ist eine effizientere Methode zum Schreiben der Erweiterung als andere Methoden, wie z. B. repmat, ndgrid und meshgrid.

Der Code, den ich schrieb, nimmt an, dass a ein Spaltenvektor ist, wie Sie es konstruiert haben.

+0

Cool! Ich wusste nicht, dass du das kannst! –

+0

Danke Hackschnitzel, auch Frohes Neues Jahr;) – user558213

+0

Season's Greetings - Das ist sehr schön. Ich danke Ihnen für das Teilen. –

Verwandte Themen