Ich habe ein 2D-Array, nennen Sie es "A". Ich habe zwei andere 2D-Arrays, nenne sie 'ix' und 'iy'. Ich möchte ein Ausgabearray erstellen, dessen Elemente die Elemente von A an den Indexpaaren sind, die von x_idx und y_idx bereitgestellt werden. Ich kann mit einer Schleife dazu wie folgt vor:zwei Arrays definieren 2D-Koordinaten, als Array-Indizes, in Matlab/Oktave
for i=1:nx
for j=1:ny
output(i,j) = A(ix(i,j),iy(i,j));
end
end
Wie kann ich dies tun, ohne die Schleife? Wenn ich output = A (ix, iy), bekomme ich den Wert von A über den gesamten Bereich von (ix) X (iy).
Danke, Jason
Vorsicht - Sie verwenden das ix-Array, um die y-Koordinate bereitzustellen, und das iy-Array, um das x bereitzustellen. In MATLAB ist der erste Index die y-Koordinate. Das gleiche gilt für Ihre Ausgangsmatrix - Sie verwenden die falschen Grenzen für die for-Schleifen. –
Guter Punkt, aber es hängt ein wenig davon ab, wie er die Daten verwendet. Wenn es ihm egal ist, dass das Anzeigen seiner Matrix x von oben nach unten und von links nach rechts zeigt, gibt es kein grundlegendes Problem, wenn man von dieser Matlab-Konvention abweicht. Aber es ist wichtig zu wissen, stimme ich zu. –