2017-01-14 4 views
1

Ich habe ein Zellenarray von 1x5 Zellen mit einem 10x1 Spaltenvektor auf jeder Zelle erzeugt.Mittelwert im Zellenfeld MATLAB

Wie kann ich den Durchschnitt aller Spaltenvektoren finden? Also, um einen letzten 10x1 neuen Spaltenvektor zu haben, der die Mittel enthält. Danke

+1

Bitte senden Sie den Code, der dieses Zellenfeld erzeugt. Unabhängig davon sollten Sie sich in diesem Fall von Zellen fernhalten und nur ein numerisches Array der Größe 10x5 generieren, dann "mean (..., 2)". –

Antwort

1

ich die Zellenfeldinhalte entlang der zweiten Dimension verketten würde (mit cat und {:} Indizierung eine durch Kommata getrennte Liste zu erhalten) und dann entlang dieser ersten Dimension der Mittelwert nehmen

result = mean(cat(2, data{:})); 

Da Ihre Daten rein numerisch, sollten Sie Zellenarrays vermeiden und stattdessen mit einer 5 x 10 Matrix umgehen, da diese viel leistungsfähiger ist. Sie können das genauso erstellen wie oben.

matrix_data = cat(2, data{:}); 
1

Hier ist eine einfache Lösung:

mean([A{:}]) % column-wise mean (1x5) 
mean([A{:}],2) % row-wise mean (10x1) 
+0

Das ist auch eine schöne Lösung. Vielen Dank! – Jespar

+0

Sie sind herzlich willkommen! – hmofrad

Verwandte Themen