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 verschiedener Größe miteinander vergleichen

 

laze
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 69
Anmeldedatum: 12.10.11
Wohnort: Stuttgart
Version: R2013a
     Beitrag Verfasst am: 23.11.2011, 10:29     Titel: Vektoren verschiedener Größe miteinander vergleichen
  Antworten mit Zitat      
Tach liebe Matlab Gemeinde,

ich bin noch relativ neu hier und habe ein kleines Problem vorliegen

Ich möchte gerne zwei Spaltenvektoren miteinander vergleichen.

x <42x1 double> und y <15x1 double>

Und zwar möchte ich sehen, welche der 42 Werte mit den 15 aus y übereinstimmen.
Folgender Fehler wird mir bei einer if Abfrage dargestellt

??? Error using ==> eq
Matrix dimensions must agree.

Verständlich, die Matrixdimensionen sind ja auch nicht gleich. Jetzt stellt sich die Frage, wie ich dennoch diese Vektoren miteinander vergleichen kann.


Danke im voraus


laze
_________________

--Wannabe
Private Nachricht senden Benutzer-Profile anzeigen


Kevin
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 93
Anmeldedatum: 18.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.11.2011, 10:59     Titel:
  Antworten mit Zitat      
Hallo,
du musst jedes Element des kurzen Vektors einzeln im langen Vektor suchen. Du kommst also nicht um eine Schleife drumrum.

Gruß
Kevin
_________________

1000 Buchstaben? Warum nur 6?
Private Nachricht senden Benutzer-Profile anzeigen
 
eupho
Forum-Meister

Forum-Meister


Beiträge: 777
Anmeldedatum: 07.01.09
Wohnort: Marburg
Version: R2009b
     Beitrag Verfasst am: 23.11.2011, 12:05     Titel:
  Antworten mit Zitat      
Kevin hat Folgendes geschrieben:
Du kommst also nicht um eine Schleife drumrum.


Damit sollte man bei MATLAB immer ganz vorsichtig sein Smile

Entsprechende Befehle dafür:

ismember() und intersect()
Private Nachricht senden Benutzer-Profile anzeigen
 
soad
Forum-Century

Forum-Century


Beiträge: 150
Anmeldedatum: 10.11.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.11.2011, 12:17     Titel:
  Antworten mit Zitat      
INTERSECT bzw. ISMEMBER sollten dir helfen:
Code:
a = randi(100,5,1);
b = randi(100,30,1);
X = intersect(a,b);
bzw.
X = a(ismember(a,b));
 


edit: ups, da war ich wohl zu langsam Wink...
Private Nachricht senden Benutzer-Profile anzeigen
 
laze
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 69
Anmeldedatum: 12.10.11
Wohnort: Stuttgart
Version: R2013a
     Beitrag Verfasst am: 23.11.2011, 14:14     Titel:
  Antworten mit Zitat      
Erstmal danke schön für die schnellen Antworten. Und ja, ich hatte auch vor, das ganze mittels for-Schleife zu lösen...ich probiere allerdings mal die andere Möglichkeit aus und berichte später, obs funktioniert hat Wink

Bis dahin
_________________

--Wannabe
Private Nachricht senden Benutzer-Profile anzeigen
 
laze
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 69
Anmeldedatum: 12.10.11
Wohnort: Stuttgart
Version: R2013a
     Beitrag Verfasst am: 23.11.2011, 14:38     Titel:
  Antworten mit Zitat      
Ok, der Befehl funktioniert insoweit, allerdings macht mir mein Code immer noch Schwierigkeiten Very Happy (Die else Anweisung ist ausgeklammert weil mir von vornherein klar ist, dass die so nicht stimmen kann ^^)

Code:
for i=1:length(torque_ps_range)
     [row_ps,col_ps]= find (torque_ps==torque_ps_range(i));
     if ~exist('torque_row_ps')
       torque_row_ps=intersect(row_ps,cell2mat(tempname_torque_row_speed);
     else
%      torque_row_ps=[torque_row_ps,torque_row_ps(i)];
     end
  end


torque_ps_range hat dabei Werte [60,80,60]
Diese sollen nun der Reihe nach in der Variablen torque_ps gesucht werden, funktioniert auch soweit.
Mir werden dann in der for-schleife jeweils die Zeilennummern der Matrix ausgespuckt, wo sich die Werte 60 80 und 60 in der Variablen torque_ps befinden und in row_ps geschrieben. (Nicht wundern, dass ich 2 mal nach der 60 such, eigtl. Quatsch ich weiss, aber das hat seinen Sinn, meine ich Very Happy , da ich wie ihr später sehen werdet, nach 3! Variablen suche, und für jede Variable ein Wert da sein soll)
So nun der Knackpunkt, ich möchte nun mit dem intersect Befehl die Zeilennummern aus row_ps in einem !CellArray! suchen. Ich glaub hier liegt irgendow der Fehler. Das Cell Array beinhaltet 3 Strings die widerrum im Workspace 3 Variablen bilden mit meinen gesuchten Zeilen. Ich möchte irgendwie in diesem Cell Array nun nach den Zeilen aus der Variablen row_ps suchen und dabei für jede dieser 3 Variablen aus der Zelle eine neue Variable "torque_row_ps" mit den übereinstimmenden Zeilen erhalten.

Puuh, hfftl. wird mein Problem verstanden...viel Text -_- Kanns im Moment leider nicht einfacher erklären Very Happy

Trotzdem schon einmal Danke

laze
_________________

--Wannabe
Private Nachricht senden Benutzer-Profile anzeigen
 
laze
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 69
Anmeldedatum: 12.10.11
Wohnort: Stuttgart
Version: R2013a
     Beitrag Verfasst am: 24.11.2011, 15:06     Titel:
  Antworten mit Zitat      
Hey, habe mein Problem anderweitig beseitigen können. Das wichtige ist, mit
Code:

hat das wunderbar funktioniert, danke an euch für die klasse Tipps!

Grüße
laze
_________________

--Wannabe
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.