extrahiere reelle Zahl aus dem Array in Matlab [duplizieren]

7

Ich möchte nur die reellen Zahlen aus einem Array extrahieren, das auch imaginäre Zahlen enthält Ich möchte die imaginären Zahlen aus dem Array entfernen. Daher aus einem Array von 10 Elementen, von denen 5 real und 5 imaginär, um eine Anordnung von nur 5 Elementen zu erhalten, die das reelle Zahlenelement sein muss. Dies in MATLAB

BEARBEITEN:

Hinzufügen eines Beispiels

%Vor%

Die gewünschte Ausgabe wäre

%Vor%

enthält nur echte Elemente von input_array .

    
carminePat 13.12.2012, 12:21
quelle

4 Antworten

11

Ein anderer, mehr vektorisierter Weg:

%Vor%     
Shai 13.12.2012, 12:39
quelle
5

Sie können isreal in Kombination mit arrayfun um zu überprüfen, ob Zahlen echt sind und / oder real , um nur die echten Teile zu behalten. Beispiele:

%Vor%     
Gunther Struyf 13.12.2012 12:30
quelle
4

Reelle Zahlen haben einen imaginären Teil von Null, also:

%Vor%     
nrz 13.12.2012 23:32
quelle
3

Sie können das mit der Funktion isreal tun. Es stellt sich heraus, dass isreal keine Vektorausgabe liefert, was für MATLAB seltsam ist, da dies normalerweise der Fall ist. Also, Sie müssen eine for-Schleife verwenden.

%Vor%

Ich nehme an, große Leute hier werden mit einer loopless Lösung kommen.

Shais Bearbeitung:

Eine Version mit Vorbelegung des Ausgabeergebnisses

%Vor%

Natürlich kann dieses Ziel ohne Schleifen erreicht werden (siehe andere Antworten). Aber für diese schleimige Version ist eine Vorzuteilung eine wichtige Zutat.

    
HebeleHododo 13.12.2012 12:29
quelle

Tags und Links