2016-09-29 7 views
0

Ich bin ziemlich neu in Matlab und versuche, für die Schule zu lernen. Ich habe einen Vektor von Werten mit festen Unterschieden zwischen aufeinanderfolgenden Werten erstellt. Z.B. A = [1 2,5 4 5,5 7 8,5 10 ...].Matlab: Wie man ein CDF-Array erstellt

Ich habe auch einen anderen Vektor von Zufallswerten, z.B. B = [3 7 1 2 3 4 8 0 ...].

Ich möchte einen neuen Vektor der gleichen Größe eines schaffen, die Zahlen, die die Anzahl der Werte in B aufweist, die kleiner oder gleich jedem Wert in A.

In diesem Beispiel C = [2 3 6 6 7 8 ...]

Vielen Dank im Voraus!

Kontext: Ich arbeite an einer CDF-Funktion

Antwort

1

Sie bsxfun() verwenden können elementweise Vergleiche zwischen Arrays zu implementieren:

C = sum(bsxfun(@le, B', A)) 

Hier sind wir bsxfun() die „weniger vorbei als oder gleich "Funktionsgriff, @le. Dies erzeugt ein length(B) von length(A) logisches Array. Wir summieren einfach die Zeilen, um die Gesamtzahl von TRUE zu erhalten.

+0

Perfekt, das funktionierte genau so, wie ich es brauchte. Vielen Dank! – user2562952

+0

@ user2562952 Großartig - froh zu helfen! – khonegger

Verwandte Themen