2012-04-03 4 views
0

This question adressiert irgendwie das Problem, aber nicht von der Seite, die ich suche.Matlab Kurzschrift für `for` mit verschachtelten` if` (wie Pythons Listenverständnis)

Ich möchte ein Array in ein anderes mappen, nur die Elemente unter einem bestimmten Schwellenwert auswählen. Grundsätzlich eine for Schleife, mit einer if bedingten Anweisung, die den Schwellenwert überprüft.

Ich kenne die arrayfun Funktion, aber ich kenne keine Möglichkeit, die bedingte Anweisung darin zu setzen, ohne eine neue Funktion zu definieren.

Gibt es eine Möglichkeit, diese Aufgabe mit einer Inline-Anweisung auszuführen?

Antwort

4

Vielleicht ist das, was Sie suchen:

A = (0:49) ./ 50; % Generate the initial array. 
B = A(A < 0.5); % Map an array into another, picking only the elements below a certain threshold. 
+2

Oder: A (arrayfun (@ (x) x <0,5, A)), ich denke, das leichter zu Matrizen erweitert werden kann. – Yuri

+0

Yep arrayfun + anonyme Funktion. Allgemeiner. –

+0

(gleiche Bearbeitung;)) –

Verwandte Themen