Ich habe ein Zell-Array von cell(1, n)
namens A
, mit jeder Zelle Eintrag enthält eine Matrix von mxn
. In der Tat enthält mein Zellenarray n
Matrizen der Größe mxn
.Multiplizieren Matrizen im Zellenfeld Matlab?
Ich habe dann ein anderes Zell-Array namens B
, mit n
pxm
Matrizen in ihm gespeichert.
Was ich tun muss, ist die beiden gegeneinander zu multiplizieren, wie in: A[1] * B[1]
, A[2] * B[2]
, ..., A[n] * B[n]
. Ich muss dann die Ergebnisse als eigene Matrizen speichern und zusammenfassen.
Die Matrizen sind konform zur Multiplikation, sondern weil Zellenfeld B
enthält weniger Zeilen als Zellenfeld A
, wenn ich cellfun(@times A, B, 'UniformOutput', true)
verwende ich erhalte ein unequal matrices
Fehler.
Dies scheint anzuzeigen, dass cellfun
nur einzelne Zellen multiplizieren kann, wenn die Matrizen die gleiche Anzahl von Zeilen und Spalten haben.
Jetzt könnte ich dies mit verschiedenen Schleifen, oder durch den Aufruf cell2mat
und mat2cell
, und so weiter ausführen. Ich könnte auch einfach alles als Matrix-Array speichern, anstatt Zellen zu verwenden ... aber - ich würde lieber Zellen verwenden.
Also - meine Frage ist: Gibt es eine gute Möglichkeit, dies nur mit cellfun
zu tun? Ich habe schon verschiedene Kombinationen von Argumenteingaben ausprobiert - aber bisher ohne Erfolg.
Leider kann ich nicht die zusätzlichen Spalten in den Matrizen löschen. Die Matrizen in den Zellen waren uneinheitlich, dh es gab nicht die gleiche Dimension, aber sie waren konform für die Multiplikation, beide Zellenarrays haben eine sichere Anzahl von Elementen, nur die Matrizen sind unterschiedlich und cellfun (@times ,,,,) erlaubte keine Multiplikation Ort. Vielen Dank für die Antwort, egal :) – James