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

Abgleichen von Matrix mit Vektor, Werte zuordnen über Index

 

Zahlenbert
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 10.07.12
Wohnort: ---
Version: R2011b
     Beitrag Verfasst am: 10.07.2012, 13:38     Titel: Abgleichen von Matrix mit Vektor, Werte zuordnen über Index
  Antworten mit Zitat      
Hallo zusammen,

ich beschäftige mich seit relativ kurzer Zeit mit MatLab und bin daher noch nicht so geübt im Umgang mit dem Programm. Seit zwei Tagen probiere ich ein Problem zu lösen, scheitere aber wiederholt daran. Hoffentlich kann mir hier jmd. helfen, da es meines Erachtens nach banal ist und ich mich wahrscheinlich nur ungeschickt anstelle.

Mir liegen Messdaten als Matrix A vor; diese hat zwei Spalten. Die Erste beinhaltet einen Zeitwert der Messung im Datenum-Format ('mm.dd.yyyy HH:MM'), die Zweite Spalte den Messwert, hier exemplarisch die ersten 30 Zeilen:


A=[
733780,079861111 0,800000000000000
733780,081250000 0,900000000000000
733780,082638889 0,900000000000000
733780,084027778 1
733780,085416667 1
733780,086805556 1
733780,088194444 1
733780,089583333 0,900000000000000
733780,090972222 0,900000000000000
733780,092361111 0,900000000000000
733780,093750000 0,800000000000000
733780,095138889 0,800000000000000
733780,096527778 0,800000000000000
733780,097916667 0,800000000000000
733780,099305556 0,800000000000000
733780,100694445 0,800000000000000
733780,102083333 0,800000000000000
733780,103472222 0,700000000000000
733780,104861111 0,700000000000000
733780,106250000 0,700000000000000
733780,107638889 0,600000000000000
733780,109027778 0,600000000000000
733780,111805556 0,600000000000000
733780,113194444 0,600000000000000
733780,114583333 0,600000000000000
733780,117361111 0,600000000000000
733780,118750000 0,700000000000000
733780,120833333 0,700000000000000
733780,122222222 0,700000000000000
733780,123611111 0,700000000000000];

Die Messung ist Lückenhaft, so dass willkürliche Zeitsprünge darin vorkommen.
Das Ziel besteht darin, diese Lücken durch NaN-Werten aufzufüllen, sodass ein konsistenter Zeitschritt entsteht.

Mein Ansatz bisher besteht darin, einen neuen Vektor B zu erzeugen, der einen konsistenten Zeitschritt für den Messzeitraum beinhaltet, hier die ersten 50 Einträge:


B=[
733955,078472222
733955,079861111
733955,081250000
733955,082638889
733955,084027778
733955,085416667
733955,086805556
733955,088194444
733955,089583333
733955,090972222
733955,092361111
733955,093750000
733955,095138889
733955,096527778
733955,097916667
733955,099305556
733955,100694445
733955,102083333
733955,103472222
733955,104861111
733955,106250000
733955,107638889
733955,109027778
733955,110416667
733955,111805556
733955,113194444
733955,114583333
733955,115972222
733955,117361111
733955,118750000
733955,120138889
733955,121527778
733955,122916667
733955,124305556
733955,125694444
733955,127083333
733955,128472222
733955,129861111
733955,131250000
733955,132638889
733955,134027778
733955,135416667
733955,136805556
733955,138194445
733955,139583333
733955,140972222
733955,142361111
733955,143750000
733955,145138889
733955,146527778];

Durch einen Abgleich der ersten Spalte der Matrix mit dem Zeitvektor sollen nun die Messwerte entsprechend in der zweiten Spalte des neuen Vektors B zugeordnet werden.

Ich habe dazu einen Thread gefunden : http://www.gomatlab.de/abgleich-zwe.....erte-zuordnen-t16102.html der ein sehr ähnliches Problem aufweist.
Den Code habe ich angepasst:

Code:
Z = nan(size(A,1),size(A,2)+1)
Z = (:,1:size(A,2))=A;
pos_ok = ismember(A(:,1),B(:,1))
Z(pos_ok,3)=B(:,2)


[size=12]Jedoch bricht MatLab jedes Mal beim letzten Schritt, dem Sortieren mit der Fehlermeldung: Subscripted assignment dimension mismatch. ab.

Kann mir jemand weiterhelfen? Ich habe inzwischen mit verschiedenen Ansätzen experimentiert aber dieser scheint mir der am erfolgversprechendste.

Gruß,

Zahlenbert
Private Nachricht senden Benutzer-Profile anzeigen


Goofy9020
Forum-Century

Forum-Century


Beiträge: 164
Anmeldedatum: 10.08.11
Wohnort: ---
Version: 2009a, 2010b
     Beitrag Verfasst am: 10.07.2012, 14:01     Titel:
  Antworten mit Zitat      
Also jetzt nur mal beim hinsehen, was nicht so ganz klappen kann

Code:

Z = (:,1:size(A,2))=A;
 


sollte eher

Code:

Z(:,1:size(A,2))=A;
 


heißen.

Den mismatch bekommst du weil in pos_ok nur Nullen drin stehen und deswegen kann er hier nichts einfügen.

Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
Zahlenbert
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 10.07.12
Wohnort: ---
Version: R2011b
     Beitrag Verfasst am: 10.07.2012, 14:39     Titel:
  Antworten mit Zitat      
Hallo Goofy9020,

da gebe ich dir vollkommen Recht.

Habe es eben ausprobiert; leider funktioniert es dennoch nicht.
Private Nachricht senden Benutzer-Profile anzeigen
 
Zahlenbert
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 10.07.12
Wohnort: ---
Version: R2011b
     Beitrag Verfasst am: 10.07.2012, 15:57     Titel:
  Antworten mit Zitat      
Der Thread hier beschreibt das Problem haargenau:

http://www.gomatlab.de/vergleich-von-zwei-cell-arrays-t19905.html

Ich habe die Strings für den Zeitvektor lediglich in integers umgewandelt.

Allerdings bricht MatLab auch beim Verwenden dieser Routine wieder mit Subscripted assignment dimension mismatch ab ... Shocked

Ich verstehe das nicht aber das Problem ist ja der User Embarassed


Ich hänge mal die Matrix sowie den Zeitvektor an - in der Hoffnung das mir das jemand erklären kann.

AB.mat.zip
 Beschreibung:
A ist die Messdaten Matrix mit den Zeitstempeln

B ist der erzeugte vollständige Zeitvektor

Download
 Dateiname:  AB.mat.zip
 Dateigröße:  519.58 KB
 Heruntergeladen:  328 mal
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.