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

Vektoren vergleichen

 

dabauer82
Forum-Century

Forum-Century



Beiträge: 184
Anmeldedatum: 21.03.08
Wohnort: ---
Version: R2008a, R2010b
     Beitrag Verfasst am: 06.05.2008, 15:12     Titel: Vektoren vergleichen
  Antworten mit Zitat      
Hallo,

ich stehe auf dem Schlauch. Ich will zwei Vektoren vergleichen und mache einen Fehler. Sehe ihn aber nicht.

Meine beiden Vektoren haben diesen Inhlat:
Code:
zAchse =

     0
     0
     1


ans =

     0
     1
     1
 


Und folgender Vergleich funktioniert nicht:

Code:

zAchse = [0 0 1]'
endeffektor.achsrichtung
if (endeffektor.achsrichtung ~= zAchse)
    disp('hallo')
end
 


Ich bekomme zwar keine Fehlermeldung, aber auch kein 'HALLO' Sad

Einer ne Idee?
Private Nachricht senden Benutzer-Profile anzeigen


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 06.05.2008, 15:30     Titel:
  Antworten mit Zitat      
Moin Daniel,

ich verwende für vergleiche immer isequal() und damit funktioniert auch alles so wie es soll:
Code:

zAchse = [0 0 1]';
endeffektor.achsrichtung = [0 1 1]';
if ~isequal(endeffektor.achsrichtung,zAchse)
    disp('hallo')
end
 


Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
dabauer82
Themenstarter

Forum-Century

Forum-Century



Beiträge: 184
Anmeldedatum: 21.03.08
Wohnort: ---
Version: R2008a, R2010b
     Beitrag Verfasst am: 06.05.2008, 15:56     Titel:
  Antworten mit Zitat      
sehr gut, danke.
werde bei gelegenheit alle Vergleiche umschreiben....

grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 06.05.2008, 16:22     Titel:
  Antworten mit Zitat      
Schau dann bei Gelegenheit mal nach "is*" in der Matlab Hilfe. Dort finden sich jede Menge nützliche Funktionen mit denen man sich einigen Aufwand sparen kann Wink
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
tompie
Forum-Guru

Forum-Guru


Beiträge: 260
Anmeldedatum: 19.09.07
Wohnort: München
Version: immer alles
     Beitrag Verfasst am: 06.05.2008, 18:10     Titel:
  Antworten mit Zitat      
Hallo,

der Grund ist, daß = bzw. ~= elementweise vergleicht:

Code:
>> [0 0 1]~=[0 1 1]

ans =

     0     1     0


während isequal array-basiert ist und nur dann true liefert, wenn alle Elemente übereinstimmen.

Gruß tompie
Private Nachricht senden Benutzer-Profile anzeigen
 
dabauer82
Themenstarter

Forum-Century

Forum-Century



Beiträge: 184
Anmeldedatum: 21.03.08
Wohnort: ---
Version: R2008a, R2010b
     Beitrag Verfasst am: 06.05.2008, 20:06     Titel:
  Antworten mit Zitat      
Danke Tompie, das ist eine sehr wichtige Erkenntnis für mich!
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 07.05.2008, 09:05     Titel:
  Antworten mit Zitat      
Aha... Wieder was dazu gelernt Wink
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.06.2010, 15:06     Titel: Vektor mit Skalar vergleichen + Werte des Vektor übertragen
  Antworten mit Zitat      
Tag,

schreibe momentan an einem m-File und frage mich wie ich einen seher langen Vektor (1*x) mit z.T. mehreren 100000 Werte mit einem Skalar indem Fall der 0 vergleiche und die Werte <= 0 in den einem Vektor und die >0 in einem weiteren Vektor übertrage.

momentaner Code:
Code:

for i = 1:length(y)
 if y(i) < 0
    j = j + 1;
    y1 = y(i);
   else
     if y(i) >= 0  
     k = k + 1;
     Y2(k) = y(i);  
     end
   end  
end  
 


Sehe grad die eine if Schleife kann raus.

Aber es muss doch möglich sein den Vektor direkt mit dem Scalar zuvergleichen.

Zumindest die beiden if Anweisungen sollte doch im 'Vergleich" zum Vergleich der Vektoren doch überflüssig sein, oder?

Grüße
 
Fussel
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 20.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.01.2013, 17:20     Titel:
  Antworten mit Zitat      
das kommt jetzt dezent spät aber falls mal einer nach sucht, ein Lösungsansatz zu dem letzten Problem:

Mit Hilfe des Befehls "find" kann man den Vektor nach den entsprechend gesuchten Zahlen absuchen lassen. Das sieht dann ungefähr so aus:

Code:

[zeileA,spalteA]=find (y<=0);
[zeileB,spalteB]=find (y>0);

% Mit Hilfe dieser Befehle erhält man die Zeilen in dennen die jeweiligen Zahlen stehen

%nun brauch man nur noch eine Zuweisung um die Werte an einen anderen Vektor zu geben

Kleiner=y(zeileA,:);
Größer=y(zeileB,:);

 


Dadurch spart man sich die nervigen for-schleifen, die imemr gerne viel Zeit fressen Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
Fussel
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 20.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.01.2013, 17:21     Titel:
  Antworten mit Zitat      
Noch dazu: In spalteA und spalteB steht dann die dazugehörige Spalte zu dem Wert, da aber nur ein Vektor bzw. eine Nx1 Matrix vorliegt ist der Wert bei spalteA und spalte B immer 1
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.