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

find-befehl

 

mais-maus

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.07.2011, 13:13     Titel: find-befehl
  Antworten mit Zitat      
Hallo,
ich bin noch absoluter anfänger und leider total auif den kopf gefallen was matlab angeht. ich hoffe es kann jemand für abhilfe sorgen.

ich habe eine daten-matrix S- 335x28

einen Teil der Daten will ich NaN setzten.
Welche das sind steht in B(:,2) B- 335x4

B enthält Tiefen. Jede Tiefe muß in einem entsprechenden Spatenvekor depth ( 128x1) gefunden werden, bzw. alle Daten die größer sind
- ich hatte an folgendes gedacht:
i= find (depth>BT(:,2))

Dann müßte man entsprechend, die Tieferen Bereiche in der gleich Großen Datenmatrix gleich NaN setzen.

Wäre toll, wenn jemand ne idee hat


Mais-maus

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.07.2011, 14:21     Titel:
  Antworten mit Zitat      
Sb_new=Sb;
for i=1:length(BT),
j=find(depth>BT(i,2)); %Depthlayers below bottom


Sb_new(i,j)=NaN;
end

Das habe ich bisher gebastelt, wobei die letzte Zeile nicht funktioniert. Wohl weil j ja mehrere Zahlen hat. Wie kann ich das lösen?
 
Peter Quint
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 21.02.11
Wohnort: Lübeck
Version: R2010b
     Beitrag Verfasst am: 11.07.2011, 14:34     Titel:
  Antworten mit Zitat      
Ich habe es nicht getestet, aber das sollte funktionieren:
Code:

Sb_new=Sb;
for i=1:length(BT),
   Sb_new(depth>=BT(:,j),j)=NaN
end
 
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: 12.07.2011, 02:47     Titel: Re: find-befehl
  Antworten mit Zitat      
Hallo mais-maus,

Code:
isGreater = bsxfun(@gt, S, B(:, 2));
S(isGreater) = NaN;

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
mais-maus

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.07.2011, 09:42     Titel:
  Antworten mit Zitat      
Super,
Ihr seid ja klasse!!
Mit Euren Kommentaren habe ich mir jetzt eine, wie ich finde sehr schöne Lösung zusammen gebastelt.
Vielen vielen Dank nochmals!!!
Küßchen
 
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.