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

Matrix Wenn Und Dann Funktion

 

TobiasTR
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 16.06.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2021, 19:11     Titel: Matrix Wenn Und Dann Funktion
  Antworten mit Zitat      
Hallo zusammen

ich habe eine Matrix die sowohl negative und positive Werte enthält.
Jetzt würde ich gerne die Werte im Bereich >-0.5 und <0.5 auf 0 setzten.

Die Matrix enthält gemessene Sensorwerte und in dem Bereich ist das rauschen.

Beste Grüße Tobias
Private Nachricht senden Benutzer-Profile anzeigen


Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 16.06.2021, 19:55     Titel:
  Antworten mit Zitat      
Wenn du Rauschen rausfiltern möchtest, wäre ein Tiefpassfilter evt. sinnvoll.

Ansonsten einfach über find alle Werte im Bereich detektieren. Ergibt einen Vektor aus 0||1. Mit diesem dann die ERgebnisse passend Null setzen.

Code:
vErg = find(x > -0.5 & x < 0.5);
x(vErg) = 0;

_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
TobiasTR
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 16.06.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.06.2021, 11:58     Titel:
  Antworten mit Zitat      
Leider bekomme ich es mit dem Code nicht hin, mir fehlt da vermutlich mehr wissen wie ich den Code korrekt anwenden kann.

Was ist "vErg" und was ist das x?

ich habe nun für x meine Matrix eingesetzt.

Code:
accelR282f=accelR282;
vErg=find(accelR282f>-0.5&accelR282f<0.5);
accelR282f(vErg)=0;


vErg ist nun ein Vektor geworden, Okay müsste ich evt meine Matrix zuvor in 3 Vektoren jeweils für x, y und z aufteilen.
Der Vektor besteht aber grundsätzlich nicht aus 0 und 1 sondern zählt ab 1 hoch bis 809'340, was auch komisch ist, es ist ein 799'096x1 Vektor, also wird nichtmal konsequent hochgezählt.


Falls du auch den Tiefpassfilter erklären kannst bin ich dem grundsätzlich auch offen, da ich aber nicht verstehe was ich da womit mache wollte ich davon die finger lassen, da ich leider erklären muss was dort in matlab gemacht wird und ich es einfach halten wollte.


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

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 19.06.2021, 22:02     Titel:
  Antworten mit Zitat      
TobiasTR hat Folgendes geschrieben:
Leider bekomme ich es mit dem Code nicht hin, mir fehlt da vermutlich mehr wissen wie ich den Code korrekt anwenden kann.

Was ist "vErg" und was ist das x?

ich habe nun für x meine Matrix eingesetzt.

Ja, x ist in der Mathematik standardmäßig eine Variable. Da ich nicht hellsehen kann, wie du deine Eingabe benannt hast, habe ich halt gewürfelt.
Ebenso bei der Benenung des Ergebnisses - Ergebnis-Vektor vErg.


TobiasTR hat Folgendes geschrieben:

vErg ist nun ein Vektor geworden, Okay müsste ich evt meine Matrix zuvor in 3 Vektoren jeweils für x, y und z aufteilen.

Ja, kannst du so machen. Einfach über jede Spalte.

TobiasTR hat Folgendes geschrieben:


Der Vektor besteht aber grundsätzlich nicht aus 0 und 1 sondern zählt ab 1 hoch bis 809'340, was auch komisch ist, es ist ein 799'096x1 Vektor, also wird nichtmal konsequent hochgezählt.

Du hast recht, da habe ich mich vertan - bei dem Code, den ich gepostet habe, wird direkt die Position innerhalb des Arrays ausgegeben.

Code:
accelR282 = [2 3 0.4; -0.4 3 3; 7 8 0.1]
vErg = find((accelR282>-0.5) & (accelR282<0.5))

=> Ergebnis ist
2
7
9

Also das 2., 7. und 9. Element der 3x3 Beispielmatrix.


TobiasTR hat Folgendes geschrieben:

Falls du auch den Tiefpassfilter erklären kannst bin ich dem grundsätzlich auch offen, da ich aber nicht verstehe was ich da womit mache wollte ich davon die finger lassen, da ich leider erklären muss was dort in matlab gemacht wird und ich es einfach halten wollte.

Tiefpassfilter lässt sich per google sicherlich schneller (er-)klären als hier per Matlab-Forum.
_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
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.