Ich habe eine 3D-Matrix eines Films (sagen wir eine Matrix M
der Größe J * K * L). Ich möchte jeden Rahmen nach links rechts drehen. Die Verwendung von fliplr(M)
funktioniert nicht, da M
eine 2-D-Matrix sein muss. Ich weiß, ich kann eine for-Schleife der folgenden verwenden:Vektorisierung von Links-Rechts-Flip einer 3D-Matrix mit Matlab
for ii=1:size(M,3)
M(:,:,ii)=fliplr(M(:,:,ii))
end
Ist die eine "vektorisierte" Möglichkeit, es zu tun?
Allgemeiner gesagt, ist die "vektorisierte" Möglichkeit, irgendeine von Matlabs Matrixmanipulationen (flipud
, repmat
, usw.) in diesem Fall zu tun?
Danke, das macht voll und ich mag es noch besser! Je weniger spezielle Matlab-Funktionen ich brauche, desto besser. –
Es ist eine vollkommen gültige Alternative - persönlich bevorzuge ich 'flipdim', weil es mir genau sagt, was es macht. Wenn ich den obigen Code sehe, muss ich nachdenken ... Dieser ist vielleicht einfacher zu schreiben (muss sich nicht an einen Funktionsnamen erinnern), der andere ist leichter zu lesen. Das Coole an SO ist, dass Sie beide Antworten bekommen, und Sie können wählen. – Floris