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 überprüfen auf Werte

 

Gast25

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2011, 16:58     Titel: Matrix überprüfen auf Werte
  Antworten mit Zitat      
Hallo zusammen,

Ich habe eine Matrix (1,2000). In dieser Matrix steht fast ausschließlich der Wert 0. Nur an manchen Stellen steht ein von Null verschiedener Wert. z.B. an Position 1640, an Position 1411 und an Position 1205. Ist es schwierig jetzt eine neue Matrix zu erstellen, am besten eine n,2-Matrix (n ist die Anzahl der von 0 verschiedenen Positionen) in der links die Positionen stehen und rechts die Werte der Position. Also, Matrixelement 1640 hat den Wert 5 und ist somit von 0 verschieden. Matrixelement 1411 hat den Wer 7.2 usw... die Matrix wäre dann:

1640 5
1411 7.2
. .
. .

Vielen Dank schonmal


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 28.07.2011, 17:05     Titel:
  Antworten mit Zitat      
Die Antwort hätte man aber ganz einfach im Forum finden können. Ein Such-in-Matrix-problem wird fast jeden Tag gestellt Wink

Code:

% Finde alle Werte größer 0 in der Matrix M
[row, col, value] = find(M > 0);
 


Wie du nun von zeile und spalte auf das Element kommst, wirst du bestimmt selber rausfinden können.
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast25

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2011, 17:40     Titel:
  Antworten mit Zitat      
Danke...
Weiß nicht ob ich das hier reinschreiben kann oder ob ich nen neues Thema machen muss...
Wenn ich jetzt alle Elemente im Umkreis von z.B. 10 mit einer Funktion vom eigentlichen Wert abklingen lassen möchte, wie kann ich das am einfachsten machen?

Was ich meine ist folgendes:
Ich habe jetzt aus meiner Zeile (die Matrix ist eine 1,2000 Matrix, also eine Zeile) die Positionen und die Werte der Felder der Positionen extrahiert. Jetzt möchte ich, dass z.B. das Feld 1641 noch den 0,8fachen Wert des 1640en Felds bekommt. genauso das 1639. Feld. Die Felder daneben (1642,1638) sollen noch das 0,6fache sein usw.. das ganze soll nachher von den Werten einer Lorentz-Funktion entsprechen, oder einfach einer Glockenfunktion...

Ist das nur mit vielen Schleifen möglich? Oder kann man das irgendwie leichter hinbekommen?

Vielen Dank für die Hilfe
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 30.07.2011, 00:33     Titel:
  Antworten mit Zitat      
Hallo Gast25,

Wenn ich Dich richtig verstehe, suchst Du nach CONV:
Code:
x = zeros(1, 2000);
x(rand(1, 2000) > 0.99) = 1;  % Test-Daten
y = conv(x, [0.1, 0.2, 0.6, 0.8, 1, 0.8, 0.6, 0.2, 0.1], 'same');
 

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.