1
Schauen Sie sich folgendes Spielzeug Beispiel:Umgestalten 3D-Array 2D
m = 3;
n = 3;
Y = rand(m,n,2);
zum Beispiel gibt mir
y (:,:, 1) =
0.8314 0.3993 0.6569
0.8034 0.5269 0.6280
0.0605 0.4168 0.2920
y (:,:, 2) =
0.4317 0.1672 0.1981
0.0155 0.1062 0.4897
0.9841 0.3724 0.3395
wenn ich jetzt umformen es
mitreshape(Y,m*n,2)
es die Ordnung stört und gibt mir,
sollte0.8314 0.4317 0.8034 0.0155 0.0605 0.9841 0.3993 0.1672 0.5269 0.1062 0.4168 0.3724 0.6569 0.1981 0.6280 0.4897 0.2920 0.3395
weil hier 2. Reihe
0.3993 0.1672
dies kann vor der Umformung von
überprüft werdenY(1,1,:)
Y(1,2,:)
etc.
Die Reihenfolge ändert sich.
PS: Ich habe riesige Daten im neuronalen Netzwerk eingespeist und dies beeinflusst die Art, wie meine Gewichte multipliziert werden.
danken you.It works.But umformen sollte nur den Auftrag erhalten. scheint nicht logisch! Ich werde die Antwort akzeptieren – Hima
@Hima Wenn Sie bedenken, dass MATLAB col-major Indexierung folgt, würde es ein bisschen mehr logisch erscheinen. Also, das zweite Element ist "0.8034" und nicht "0.3993". Wir brauchen "permutieren", damit die ersten zwei Dims ausgetauscht werden. Diese Umgestaltung gibt uns endlich eine 2D-Version. – Divakar
Okay, dann sollte y (1,2,1) auch dasselbe geben, aber das tut es nicht. – Hima