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

aus struct mittelwert berechnen für alle Werte >0

 

Nemesis2088
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 08.07.13
Wohnort: Schweiz
Version: ---
     Beitrag Verfasst am: 25.10.2013, 03:06     Titel: aus struct mittelwert berechnen für alle Werte >0
  Antworten mit Zitat      
Ich habe ein struct file (heisst glaub so) mit vielen Werten und ich möchte eine Schleife machen, um Matlab zu sagen, dass daraus nur die Zahlen>0 genommen werden sollen. Und von all diesen Werten>0 muss ich den Mittelwert erhalten.
Ich weiss einfach nicht, wie ich die Schleife genau machen muss, damit keine Fehlermeldung kommt.

Das File sieht vllt so aus : [12 4 0 0 1 44 15]

Code:
tmp=0;
zähler=0;
 for i=1:n
    if (n(i).a >0)
        mean(n(i).a);
        tmp=tmp+mean;
        zähler=zähler+1;
    end
end

mittelwert=tmp/zähler;


Habs einfach so probiert, eine Schleife über das File und dann einfach die Bedingung dass es grösser 0 sein muss und dann den Befehl für den Mittelwert. Aber da gibt es irgendwie ein Problem, dass es so falsch ist und mean für ein struct nicht geht. Den Mittelwert wollte ich dann einfach erhalten über das summierte mean geteilt durch die Anzahl

Weiss jemand was man da ändern muss damit es funktioniert?
Private Nachricht senden Benutzer-Profile anzeigen


Kascho
Forum-Century

Forum-Century


Beiträge: 195
Anmeldedatum: 24.03.10
Wohnort: Jena
Version: R2008b ... :(
     Beitrag Verfasst am: 25.10.2013, 10:09     Titel:
  Antworten mit Zitat      
Poste bitte beim nächsten mal den Code, der dein Problem reproduziert. Weiterhin die vollständige Fehlermeldung. Das erspart den Antwortenden das raten.
Ich vermute mal, dass das ganze ohne Schleife und mit logischer Indizierung gehen sollte.
So in der art:

Code:
sum(File(File>0));


Hab hier grad nix zum Testen ... Ich arbeite selber weniger mit Structs, aber glaube mit [] kannst du auf alle Elemente zugreifen.

Gruß, Kascho
Private Nachricht senden Benutzer-Profile anzeigen
 
Nemesis2088
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 08.07.13
Wohnort: Schweiz
Version: ---
     Beitrag Verfasst am: 25.10.2013, 14:49     Titel:
  Antworten mit Zitat      
danke für die antwort - geht wirklich am einfachsten, das file direkt aufzurufen, braucht ja gar keine schleife...
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 26.10.2013, 12:03     Titel: Re: aus struct mittelwert berechnen für alle Werte >0
  Antworten mit Zitat      
Hallo Nemesis2088,

Bemerkung: Diese Zeilen sind sinnfrei:
Code:
mean(n(i).a);  % Hier wird zwar der Mittelwert berechnet,
%   Aber nirgendswo gespeichert!

tmp=tmp+mean;  % Hier bekommt die Funktion "mean" keine Input-Argumente.
 

Gruß, Jan
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.