WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Mittelwert aus Cell-Array auslesen

 

tobiasfw
Forum-Anfänger

Forum-Anfänger


Beiträge: 40
Anmeldedatum: 13.09.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.07.2012, 14:39     Titel: Mittelwert aus Cell-Array auslesen
  Antworten mit Zitat      
Hallo,

ich möchte den Mittelwert aus 3D-Matrizen berechnen:
Code:

% Hier wird eine 3x3 Anfangsmatrix erzeugt
X1 = [1 2 3; 4 5 6; 7 8 9];
X1 = repmat(X1,[1 1 3]);
X1 = uint8(X1);

% Hier wird ein 3x2-Cell-Array erstellt, das in jeder Zelle eine 3D-Matrix hat
for i = 1:3
    M{i,1}(1:3,1:3,1:3) = X1(1:3,1:3,1:3)*i;
    M{i,2}(1:3,1:3,1:3) = X1(1:3,1:3,1:3)*i*0,5;
end

% Hier möchte ich über die Zeilen des Arrays hinweg, aber für die Spalten separat einen Mittelwert errechnen. Es sollten sich zwei 3x3-Mittelwert-Matrizen ergeben.

for j = 1:2
    meanM{j} = mean(M{:,j});
end
 


Es kommt aber folgende Fehlermeldung: "??? Error using ==> mean
Too many input arguments."

Was mache ich falsch?
Danke und Gruß,
Tobias
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.07.2012, 19:11     Titel:
  Antworten mit Zitat      
Hallo,

gib mal M{:,1} ein und schau, was da kommt. Eine ganze Liste von Matrizen; du kannst aber immer nur eine in MEAN reinstecken.

Leider habe ich keine Ahnung, was du mit deinem Cell Array voller 3D-Matrizen anstellen willst; insofern ist es auch schwer, einen Rat zu geben. Ich kann mir aber vorstellen, dass CELLFUN hier hilft.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
tobiasfw
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 40
Anmeldedatum: 13.09.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.07.2012, 15:20     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

gib mal M{:,1} ein und schau, was da kommt. Eine ganze Liste von Matrizen; du kannst aber immer nur eine in MEAN reinstecken.

Leider habe ich keine Ahnung, was du mit deinem Cell Array voller 3D-Matrizen anstellen willst; insofern ist es auch schwer, einen Rat zu geben. Ich kann mir aber vorstellen, dass CELLFUN hier hilft.

Grüße,
Harald



Die 3D-Matrizen sind RGB-Bilder. Ich habe das Beispiel hier vereinfacht dargestellt, da das sonst zu weit führen würde.

Die Idee ist also, dass ich N x M Bilder habe und eine Art "Durchschnittsbild" für alle M einzeln machen will, gemittelt über alle N.

Bei M{:,1} gibt es die gleiche Fehlermeldung. Aber ich habe den Code ja mitgeschickt, kann man also eigentlich ganz gut daran testen, oder stimmt da was nicht?

LG
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.07.2012, 16:19     Titel:
  Antworten mit Zitat      
Hallo,

dass dein Code Fehler produziert, war klar und so auch nachvollziehbar. Mir war jedoch nicht klar, was du mit dem Code erreichen wolltest.

Vorschlag:

Code:
% Hier wird eine 3x3 Anfangsmatrix erzeugt
X1 = [1 2 3; 4 5 6; 7 8 9];
X1 = repmat(X1,[1 1 3]);
X1 = uint8(X1);

% Hier wird ein 5D-Array erstellt
% M(:,:,:, i, j) entspricht einem Bild
M = zeros(3,3,3,3,2);
for i = 1:3
    M(:,:,:,i,1) = X1(1:3,1:3,1:3)*i;
    M(:,:,:,i,2) = X1(1:3,1:3,1:3)*i*0.5;
end

% Hier möchte ich über die Zeilen des Arrays hinweg, aber für die Spalten separat einen Mittelwert errechnen. Es sollten sich zwei 3x3-Mittelwert-Matrizen ergeben.

meanM = mean(M,5);


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
tobiasfw
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 40
Anmeldedatum: 13.09.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.07.2012, 11:28     Titel:
  Antworten mit Zitat      
Das funktioniert sehr gut, vielen Dank! Es ist natürlich etwas unübersichtlich mit so vielen Dimensionen, aber es geht Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.