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

Zwei matrizen zusammen vergleichen

 

Hild12

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.07.2012, 08:54     Titel: Zwei matrizen zusammen vergleichen
  Antworten mit Zitat      
Hallo,
ich habe zwei matrizen A nx4 und B mx5. ich möchte jetzt spalte 3 von matrix A mit spalte 1 von matriz B zusammen vergleichen, aber SO z.b . falls b11<a11<b21 dann nimmt für a11 den wert b21 usw. wie kann ich das machen. ich bin total neu mit matlab. Danke sehr


Hild12

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.07.2012, 09:19     Titel:
  Antworten mit Zitat      
hallo,
ich habe selber folgende code geschrieben:
Code:

rs_mn=zeros(length(ts_mn),3);
for i = 1 : length(ts_mn)
    while ~isempty(find( DrPosition( i,1) < ts_mn(i,3)<DrPosition( i+1,1)))
       rs_mn(i,1)=DrPosition( i+1,1);
       rs_mn(i,2)=DrPosition( i+1,2);
       rs_mn(i,3)=DrPosition( i+1,3);
    end  
       
end
 


dauert es sehr lange um ich meine Antwort zu bekommen!
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 16.07.2012, 12:19     Titel:
  Antworten mit Zitat      
Hallo Hild12,

Merkwürdigerweise ändert sich in der WHILE Schleife gar nichts an den Variablen, die in der Bedingung vorkommen. Dewegen sollte entweder der Inahlt der WHILE-Schleife niemals erreicht werden, oder als Endlosschleife enden.

Zudem macht "a < b < c" wohl nicht das, was du erwartest: Der Ausdruck wird von links nach rechts berechnet. Zunächst also "a < b". Dies ist entweder TRUE oder FALSE. Für den nächsten Schritt wird dies dann in einen DOUBLE umgewandelt, also entweder 1 oder 0. Nun folgt "1 < c" oder "0 < c". Du möchtest aber wohl "a < b & b < c".

Obwohl ich den Code also für fehlerhalft halte, hier ein paar Ideen zur Beschleunigung:
Code:

rs_mn=zeros(length(ts_mn),3);
for i = 1 : length(ts_mn)
    while any(DrPosition( i,1) < ts_mn(i,3) & ts_mn(i,3) < DrPosition( i+1,1))
       rs_mn(i, :) = DrPosition( i+1, :);  % Oder rs_mn(i, 1:3)
    end  
end

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.