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

Addition von Messwerten nach Klassen

 

malikk
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 23.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.03.2017, 11:34     Titel: Addition von Messwerten nach Klassen
  Antworten mit Zitat      
Hallo,
ich habe 2 Messreihen:
1) gemitteltes Drehmoment
2) gemittelte Lastspielzahl
Nun habe ich das Drehmoment in 5er Schritten (Klassen) vorliegen (insgesamt 100 Mögliche Werte von -200 bis 300). Die Drehmomentmesswerte will ich der Reihe nach durchgehen und je nach Höhe die dazugehörige Lastspielzahl in einer anderen Matrix aufsummieren.

Bsp: Insgesamt in der Messung 3x200Nm mit je 12, 38 und 5 dazugehörigen Lastspielen. Die zu bildende Matrix soll dann bei der Drehmomentklasse 200Nm die Summe der Lastspiele beinhalten (hier = 55 Lastspiele bei 200 Nm). Somit schrumpft die Anzahl an Zeilen (Messwertpaare von Moment und Lastspielen) auf die Anzahl der Klassen.

Mein bisheriger Ansatz über eine schleife + switch case würde 100 Fälle beinhalten, was enormer Aufwand wäre:
Code:
%
for i = 1:anzahlMW
n = Messungen(i,SpalteMoment)
switch n
    case -200
        ErgebnisMatrix(1,1)=ErgebnisMatrix(1,1)+Messungen(i,SpalteLastspielzahl)
    case -195
        ErgebnisMatrix(2,1)=ErgebnisMatrix(2,1)+Messungen(i,SpalteLastspielzahl)
    case -185
    .
    .
    .
end
end
 


Ihr seht das ist ziemlich aufwendig. Gibt es da etwas eleganteres?

MfG Malik
Private Nachricht senden Benutzer-Profile anzeigen


malikk
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 23.03.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.03.2017, 10:40     Titel:
  Antworten mit Zitat      
Habs etwas eleganter lösen können Smile

Code:
%

for i = 1:s %zählen bis Anzahl Messwerte
UG=-220; %Untere Klassengrenze
n = Matrix(i,2) %Messwert holen

     while j<(anzahlklassen+1)
           
        if (((UG+5)>n) && (n>=UG))
            Ergebnismatrix(j,2)= Ergebnismatrix(j,2)+Matrix(i,1); %Lastspiele addieren
            j=anzahlklassen+1;
           
        else
            UG=UG+5; %Nächste Klasse wählen
            j=j+1;
        end    
    end
j=1;
end

 

Es gibt noch eine Variante, bei der man die Messwerte aber erst runden muss.
Diese hier ist (auch von der Rechenzeit) i.O.

MfG Malik
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 - 2024 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.