2016-04-30 7 views
-1

Ich habe eine Matrix von 100 Sub-Matrix. Jede dieser Untermatrix 6 Elemente (1 * 6),Wählen Sie ein Element einer Sub-Matrix

ich brauche die Mittel des ersten Elements jeder Untermatrix zu berechnen, dann die

Sekunden usw

Beispiel:

B=[4,**3**,2,1,1,2] 
C=[4,**3**,5,1,1,2] 
D=[6,**3**,2,1,1,2] 

A={B,C,D} 

... etc

Deshalb möchte ich den Mittelwert der surlined Zahlen, dann die nächste etc

Wie kann ich das tun ???

Dank durch weitere

+0

Können Sie ein kleines Beispiel Ihrer Matrix geben? Ich kann nicht sagen, ob es '100x6',' 1x600' oder was ist. – beaker

+0

Die Matrix A (1.100) enthält 100 Submatrix B, C, D ... Dann ist B eine 1 * 6 Matrix –

+0

Das ergibt für mich keinen Sinn. Ist 'A' eine Struktur? Ein Zellenfeld? Können Sie ein * kleines * Beispiel dafür geben, wie Ihre Matrix aussieht? – beaker

Antwort

0

denke ich Sie hier, was Sie brauchen cell2mat der Befehl. Hier bedeutet ein kleines Skript, wie man rechnet, automatisch, ohne die Größe der Daten zu kennen. lassen Sie mich wissen, ob Sie danach gesucht haben.

% Problem 
vec1 = [4,3,2,1,1,2]; 
vec2 = [4,3,5,1,1,2]; 
vec3 = [6,3,2,1,1,2]; 
A = {vec1,vec2,vec3}; 

% get dimensions 
cols = numel(cell2mat(A(1))); 
rows = numel(A); 

% convert list of vectors to matrix 
M = cell2mat(A); 
M = reshape(M,[cols,rows]); 
M = M'; 
means = mean(M) 
+0

Ja das war was benötigt wurde! Danke für Ihre Hilfe –

+0

Es ist viel einfacher, wenn Sie einfach "A" transponieren, bevor Sie es in eine Matrix umwandeln: 'M = cell2mat (A. ');' Oder, noch schneller, bedeutet 'mean (cell2mat (A.')) '. – beaker

+0

bitte Frage als gelöst markieren und Antwort annehmen. Danke! – thomas