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

Benötige Formel für die Rautiefe Rz

 

Anfänger1977
Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 07.06.21
Wohnort: Frielendorf
Version: R2021a
     Beitrag Verfasst am: 07.06.2021, 12:51     Titel: Benötige Formel für die Rautiefe Rz
  Antworten mit Zitat      
Hallo Matlab Community,

ich habe ein Problem mit Rautiefe Rz.
Die Aufgabe ist, Wert Rz mit dem Matlab auszugeben. Die Formel dafür :
Rz = 1/5(Rz1+Rz2+Rz3+Rz4+Rz5).

Vielleicht hat jemand von euch einen Lösung für mein Problem.

Liebe Grüße

Plott.JPG
 Beschreibung:

Download
 Dateiname:  Plott.JPG
 Dateigröße:  54.67 KB
 Heruntergeladen:  207 mal


Zuletzt bearbeitet von Anfänger1977 am 07.06.2021, 13:29, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.06.2021, 13:28     Titel:
  Antworten mit Zitat      
Hallo,

was hast du denn probiert?

Wenn Rz1 bis Rz5 im Workspace vorhanden sind, kannst du das ja so schreiben. Du brauchst nur ein * nach 1/5 einzufügen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Anfänger1977
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 07.06.21
Wohnort: Frielendorf
Version: R2021a
     Beitrag Verfasst am: 07.06.2021, 13:57     Titel:
  Antworten mit Zitat      
Hallo Harald,

dieses Wert z.B. Rz1 ist eine Summe aus dem Maximalen und Minimale Wert der Welle von der y-Achse im Abschnitt L1. Könntest du mir vielleicht Tipp geben, wie ich auf den Wert z.B. Rz1 komme?
Sende noch als Beispiel Welle.jpg

Liebe Grüße

Welle.jpg
 Beschreibung:

Download
 Dateiname:  Welle.jpg
 Dateigröße:  143.8 KB
 Heruntergeladen:  231 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

im einfachsten Fall
Code:


Wenn du das auf Bereiche zwischen bestimmten Vorzeichenwechseln beschränken willst, kannst du mit
Code:

deren Indizes bestimmen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Anfänger1977
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 07.06.21
Wohnort: Frielendorf
Version: R2021a
     Beitrag Verfasst am: 07.06.2021, 16:30     Titel:
  Antworten mit Zitat      
Hallo Harald,

mit der Code:

Code:


bekomme ich nur ein Ergebnis, die Summe von max(y) und min(y) Werten aus Exceldatei, die recht groß ist. Dagegen brauche ich die einzelne Werte Rz1,...,Rz5 von den einzelnen fünf Strecken L1, L2, ... , L5.
Die x-Achse ist die ganze Strecke, also x sollte durch 5 geteilt sein, danach erhält man 5 einzelne geiche Strecken: L1,... ,L5.
Danach könnte ich die Werte Rz1, ... , Rz5 addieren und durch 5 teilen.
deswegen ist die Frage: Wie bekomme ich die einzelne Werte von Rz1,... ,Rz5 heraus?

Liebe Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

Zitat:
Die x-Achse ist die ganze Strecke, also x sollte durch 5 geteilt sein, danach erhält man 5 einzelne geiche Strecken: L1,... ,L5.

Wie dieses Teilen vor sich gehen soll, ist mir nicht klar. Ich kann nur vermuten, dass Rz1 zwischen dem ersten und dem dritten Vorzeichenwechsel sein soll, also dann:

Code:
vzw = find(diff(sign(x)) ~= 0);
L1 = y(vzw(1):vzw(3));
max(L1) - min(L1)

und entsprechend für die anderen Teilstücke.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Anfänger1977
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 07.06.21
Wohnort: Frielendorf
Version: R2021a
     Beitrag Verfasst am: 07.06.2021, 18:12     Titel:
  Antworten mit Zitat      
Viellen Dank Harald,

werde morgens versuchen mit dem Code.
_________________

Liebe Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Anfänger1977
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 07.06.21
Wohnort: Frielendorf
Version: R2021a
     Beitrag Verfasst am: 08.06.2021, 09:24     Titel:
  Antworten mit Zitat      
Hallo Harald,

bei der gemittelten Rautiefe Rz handelt es sich um den Mittelwert aus Einzelrautiefen von fünf aufeinander folgenden Einzelmessstrecken im Rauheitsprofil. In jedem Messabschnitt werden die Extremwerte zu einer Spannweite addiert und durch die Anzahl der Messabschnitte dividiert.
Das ist das Problem, ich brauche die fünf Einzelrautiefen, danach kann ich diese Werte zusammen addieren und durch 5 teilen. Danach sollte es meine gemittelte Rautiefe sein, was ich auch später in Matlab ausgeben sollte.
Das kann man auf dem Bild, was ich jetzt gepostet habe, zu sehen.

Rz Erklärung.jpg
 Beschreibung:

Download
 Dateiname:  Rz Erklärung.jpg
 Dateigröße:  168.94 KB
 Heruntergeladen:  206 mal

_________________

Liebe Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

das unterscheidet sich natürlich von dem, was du zuvor skizziert hast.

Vorschlag dann:
Code:
y2 = reshape(y, [], 5);
Rz_1to5 = max(y2) - min(y2);
Rz = mean(Rz_1to5);


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Anfänger1977
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 07.06.21
Wohnort: Frielendorf
Version: R2021a
     Beitrag Verfasst am: 08.06.2021, 11:29     Titel:
  Antworten mit Zitat      
Matlab gibt Fehlermeldung:

Error using reshape
Product of known dimensions, 5, not divisible into total number of elements, 8329.
Error in Script_7 (line 44)
y2 = reshape(y, [], 5);

8329 ist nicht durch 5 teilbar.
Wie könnte ich dieses Problem Lösen?
_________________

Liebe Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 08.06.2021, 13:08     Titel:
  Antworten mit Zitat      
Hallo,

bei 5 gleich langen Teilen bin ich davon ausgegangen, dass das auch teilbar ist.
Ein einfacher Workaround wäre, das Array mit einem NaN am Ende aufzufüllen. Für einen Spaltenvektor y:
Code:
y2 = reshape([y; NaN], [], 5);

Bei einem Zeilenvektor musst du , statt ; als Trennzeichen verwenden.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Anfänger1977
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 07.06.21
Wohnort: Frielendorf
Version: R2021a
     Beitrag Verfasst am: 08.06.2021, 17:14     Titel:
  Antworten mit Zitat      
Hallo Harald,

beim Script:
Code:
y2 = reshape([wprofile; NaN], [], 5);
Rz_1to5 = max(y2) - min(y2);
Rz = mean(Rz_1to5);


Gibt Matlab Fehlermeldung:

Error using vertcat
Dimensions of arrays being concatenated are not consistent.
Error in Script_7 (line 46)
y2 = reshape([wprofile; NaN], [], 5);


Und beim Script:
Code:
y2 = reshape([wprofile, NaN], [], 5);
Rz_1to5 = max(y2) - min(y2);
Rz = mean(Rz_1to5);


Gibt Matlab folgende Fehlermeldung:

Error using reshape
Product of known dimensions, 5, not divisible into total number of elements, 19721.
Error in Script_7 (line 46)
y2 = reshape([wprofile, NaN], [], 5);
_________________

Liebe Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 08.06.2021, 20:17     Titel:
  Antworten mit Zitat      
Hallo,

Wenn die Länge des Signals schon durch 5 teilbar ist, brauchst du kein NaN mehr anzuhängen. Wenn du den Code für unterschiedliche Signallängen automatisch lauffähig machen möchtest, musst du dir überlegen, mit wie vielen Werten aufgefüllt werden muss. Die Funktion rem dürfte helfen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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.