Ich habe ein 3D-Array (Bild) mit den Abmessungen 256 x 3527 x 8
. Ich wünsche alle Werte durch einen Vektor von 1 durch die 3. Dimension teilen bis 8.MATLAB: 3D-Array Division durch 1D Vektor
Zum Beispiel mein Vektor wie folgt aussieht:
Esun = [1 2 3 4 5 6 7 8]
In jeder Schicht des Bildes der Größe 256 x 3527
(von 8 Schichten), möchte ich es durch den entsprechenden Wert in Esun
teilen.
Wenn MATLAB keine solche Funktion hat, wird es schneller sein, mein 3D-Array in 8 Teile zu schneiden und es durch eine Schleife zu führen, oder Esun in ein 3D-repetitives Array umzuwandeln und eine Matrix-Division zu erstellen?
Ich habe ein wenig über bsxfun gelesen und ich habe nur eine Frage: beeinflusst die Art der Grafikkarte, die ich verwende, seine Geschwindigkeit? –
Nein, tut es nicht. Grafikspeicher wird nur in MATLAB verwendet, wenn 'gpuArray's verwendet werden und nur nVidia-Karten unterstützt werden. Ansonsten sollten CPU und RAM die Leistung beeinträchtigen. – rayryeng
Ah okay, ich denke, ich habe die Definition falsch von der Mathworks-Seite gelesen. Danke für die Klarstellung. –