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

unique Funktion

 

quay

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.03.2014, 17:52     Titel: unique Funktion
  Antworten mit Zitat      
Servus

Folgendes Problem habe ich:

Vektor A Vektor B
01.01.2003 88888
01.01.2003 88888
01.01.2003 88888
01.01.2003 33553
01.01.2003 33553
02.02.2003 77777
02.02.2003 77777

ich möchte gerne folgenden Output
01.01.2003 88888
01.01.2003 33553
02.02.2003 77777

Wie kann ich dieses Problem lösen? mit der Unique Funktion funktionert es bei mir leider nicht, da die Fehlermeldung kommt, dass die Vektoren nicht gleich lang sind, was Sinn macht, da bei der Unique Funktion auf der linken Seite nur 2 Werte, rechts aber Werte stehenbleiben würden. Gibt es einen Trick dieses Problem zu umgehen?

Vielen Dank


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.03.2014, 22:12     Titel:
  Antworten mit Zitat      
Hallo,

hier eine Möglichkeit:
Code:
A = {'01.01.2003'
'01.01.2003'
'01.01.2003'
'01.01.2003'
'01.01.2003'
'02.02.2003'
'02.02.2003'};

B = [88888
88888
88888
33553
33553
77777
77777];
data = [datenum(A,'dd.mm.yyyy'), B];
udata = num2cell(unique(data, 'rows'));
udata(:,1) = cellstr(datestr(cell2mat(udata(:,1)),'dd.mm.yyyy'))


Bitte Daten immer so zur Verfügung stellen, dass man sie leicht per copy-paste in MATLAB einfügen kann.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
quay

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.03.2014, 09:36     Titel:
  Antworten mit Zitat      
Vielen Dank für die Antwort und sorry dass ich die Daten in einer falschen Version hochgeladen habe. Dein Code funktioniert fast perfekt. Das einzige Problem dass ich habe ist, dass meine Daten bereits im Format yyyymmdd sind. Dadurch habe ich einfach den ersten Teil weggelassen. Am Ende gibt es mir aber irgendwie komische Daten aus/komische Werte wie 4419 als Jahr. Irgend eine finale Idee was da das Problem sein könnte?

Lg und nochmals vielen Dank
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.03.2014, 09:53     Titel:
  Antworten mit Zitat      
Hallo,

sieht so aus, als ob die Datumsangaben nicht richtig verarbeitet würden.
Bitte ein komplettes Beispiel posten, in dem das Problem auftritt.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
quay

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.03.2014, 09:57     Titel:
  Antworten mit Zitat      
Leider habe ich den Code nun an meinem richtigen Datensatz verwendet, wobei dann stehts die Fehlermeldung kommt:

horzcat
Dimensions of matrices being concatenated are not consistent

obwohl beide Variabeln exakt die gleiche Anzahl Observationen aufweisen. Das Problem scheint also tiefer zu liegen.

lg
 
quay

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.03.2014, 10:09     Titel:
  Antworten mit Zitat      
Danke Harald für deine Mühe, find ich wirklich toll von dir. Hier die konkreten Daten. Irgendwas funktioniert immer noch nicht. Ich hab bereits mit dem Size command gearbeitet, allerdings sind die beiden Arrays exakt das selbe, wodurch ich echt nicht weis woran es liegt.

lg quay

codetest1.m
 Beschreibung:

Download
 Dateiname:  codetest1.m
 Dateigröße:  162 Bytes
 Heruntergeladen:  348 mal
Codetest1.xls
 Beschreibung:

Download
 Dateiname:  Codetest1.xls
 Dateigröße:  3.2 MB
 Heruntergeladen:  382 mal
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.03.2014, 10:11     Titel:
  Antworten mit Zitat      
Hallo,

leider kann ich nicht erkennen, woher diese Fehlermeldung kommt, ohne das komplette Beispiel zu sehen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
quay

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.03.2014, 10:18     Titel:
  Antworten mit Zitat      
Reichen die beiden Files die ich hochgeladen habe? Danke
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.03.2014, 10:44     Titel:
  Antworten mit Zitat      
Hallo,

ich kann nicht erkennen, wie die Variable codetest1 aus der Datei codetest1.xls entsteht, und genau dort scheint das Problem zu liegen.

Folgendes funktioniert bei mir:

Code:
[values, dates] = xlsread('Codetest1.xls');
data = [datenum(dates, 'ddmmmyyyy'), values];
udata = num2cell(unique(data, 'rows'));
udata(:,1) = cellstr(datestr(cell2mat(udata(:,1)),'yyyymmdd'))


Grüße,
Harald
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.