Frage

Ich bewerten eine einfache Funktion:

y = (2*x)/sqrt( 1 + x.^2 );

Wo x ist ein Vektor mit etwa 100 Werten. Matlab macht jedoch y gleich einem einzelnen Skalarwert in diesem Fall. Wenn ich mache:

y = 2*x;

Ich bekomme einen Wertevektor in y wie erwartet. Wenn ich mache:

y = x.^2;

ich Auch Holen Sie sich einen Wertevektor in y wie erwartet.

Warum ist die obige Gleichung y = (2*x)/sqrt( 1 + x.^2 ); einen einzelnen Wert und nicht einen Wertvektor geben?

War es hilfreich?

Lösung

Die Operation B/A (gegeben B = 2*x und A = sqrt(1+x.^2)) wird versuchen, durchzuführen Matrix Right Division, was für einen Zeilenvektor x wird die Lösung im Sinne der geringsten Quadrate für das Gleichungssystem sein yA = B, was zu einem skalaren Wert für führt y.

Zum Element-Weise Array Division, führen Sie den Vorgang aus B./A Stattdessen (beachten Sie die .).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top