Ho una matrice di celle di cell(1, n)
denominata A
, con ciascuna voce di cella contenente una matrice di mxn
. Quindi, in effetti, il mio array di celle contiene le matrici n
della dimensione mxn
.Matrici multiple in matrice di celle Matlab?
Quindi ho un altro array di celle chiamato B
, con matrici n
pxm
memorizzate in esso.
Quello che devo fare è moltiplicare i due uno contro l'altro, come in: A[1] * B[1]
, A[2] * B[2]
, ..., A[n] * B[n]
. Ho quindi bisogno di memorizzare i risultati come singole matrici e riassumerle.
Le matrici sono conformi per moltiplicazione, ma perché matrice di celle B
contiene meno righe rispetto matrice di celle A
, quando uso cellfun(@times A, B, 'UniformOutput', true)
ottengo un errore unequal matrices
.
Ciò sembra indicare che cellfun
può solo moltiplicare le singole celle quando le matrici hanno lo stesso numero di righe e colonne.
Ora, è possibile eseguire questa operazione utilizzando vari loop oppure chiamando cell2mat
e mat2cell
e così via. Potrei anche solo archiviare tutto come matrice matrice piuttosto che usare le celle ... ma - preferirei usare le celle.
Quindi, la mia domanda è: c'è un buon modo per farlo usando solo cellfun
? Ho già provato varie combinazioni di argomenti, ma senza fortuna fino ad ora.
Purtroppo non posso eliminare le colonne aggiuntive nelle matrici. Le matrici nelle celle erano irregolari, ovvero non erano della stessa dimensione ma erano conformi per la moltiplicazione, entrambe le matrici di celle hanno un numero di elementi di salvataggio solo le matrici sono diverse e cellfun (@times ,,,,) non consentiva la moltiplicazione posto. Grazie mille per la risposta a prescindere :) – James