|
|
Zwei Tabellen sollen sich ergänzen |
|
Doro07 |
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 13.10.17
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.10.2017, 12:30
Titel: Zwei Tabellen sollen sich ergänzen
|
|
|
|
|
Hallo,
ich habe ein Problem. Und zwar habe ich zwei Matrizen vorliegen die sich ergänzen sollen.
Die erste ist wie folgt aufgebaut: date, Longitude, Latitude, Temperatur, MLD
Die zweite hat folgende Spalten: Date, Longitude, Latitude, fCO2
Am Ende hätte ich gern eine Matrix die Date, Longitude, Latitute, Temp, MLD und fCO2 umfasst.
Es gibt nun mehrere Probleme:
1. die Tabelle 1 umfasst den kompletten Nordatlantik, Longitude und Latitude werden in 0.25° Schritten abgebildet und an jedem Schnittpunkt liegt pro Tag ein Wert für Temp und MLD vor. Tabelle 2 hingegen hat die Daten von einem Schiff, dass einmal über den Nordatlantik rüber gefahren ist. Daher liegt nicht genau die gleiche Datenmenge vor, sondern viel weniger. Ich möchte aber die fCO2 Werte, da wo sie vorliegen gerne zu dem Date, Longitude und Latitude von Tabelle 1 zurechenen. Ist das mit einer for-Schleife möglich?
2. Die Date- Werte in Tabelle 1 liegen immer um 12 Uhr mittags vor, bei Tabelle 2 sind hingegen verschiedene Uhrzeiten für einen Tag gegeben. Ich habe den String "01-Januar-2013 08:51" mit datenum um geformt in "7.3524e+05" . Ist es möglich MatLab zusagen, dass er die Uhrzeit nicht sogenau nehmen soll hauptsache der Tag von Tabelle 1 und 2 stimmt überein?
3. In Tabelle 1 liegen Longitude und Latitute sauber in 0,25° Schritten vor. In Tabelle 2 hingegen, sind sie nicht so, sodern durchaus auch mit anderen Nachkommastellen. Ist es möglich, dass MatLab die Werte einfach dem nächst näheren Wert zurechnet? Also wenn in Tabelle 2 z.b. der Werte Long -87.4236 vorliegt MatLab das zu long in Tabelle 1 -87.50 zuornet?
Ich habe nicht mal den Ansatz einer Ahnung, wie ich dieses Problem angehen kann, deswegen wäre ich für jede Hilfe sehr dankbar!!
|
|
|
|
|
SigiSorglos |
Forum-Century
|
|
Beiträge: 147
|
|
|
|
Anmeldedatum: 24.09.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.10.2017, 15:38
Titel:
|
|
Also prinzipiell funktioniert das schon alles was du gerne machen möchtest.
zu 1) ich würde das auch mit einer for-Schleife machen, die die Zeilen von Tabelle 2 durchläuft und dann die fCO2-Werte an der passenden Stelle in die Tabelle 1 einfügt. Allerdings geht das vielleicht auch schneller mit logischer Indexierung, da darf mich gerne jemand verbessern. (ich weiß nicht wie wichtig dir Laufzeitoptimierung ist)
zu 2) nicht so genau nehmen würde ich so machen:
zu 3) Pseudocode:
damit solltest du den Index des Wertes bekommen, der am nächsten an dem Wert -87.50 liegt.
Hilft dir das schon weiter oder brauchst du es genauer?
|
|
|
DoroH |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.10.2017, 21:15
Titel:
|
|
Vielen Dank für deine Hilfe!
1. und 2. habe ich wie vorgeschlagen gelöst. Für das dritte Problem habe ich folgenden Befehl verwendet:
%Die Longitude unnd Latitude Werte werden gerundet
Longitude=round([fCO2a(:,2)]/0.25)*0.25;
Latitude=round([fCO2a(:,3)]/0.25)*0.25;
Falls sich das mal jeamdn durchliest und ähnliche Probleme hat.
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| RSS
Hosted by:
Copyright © 2007 - 2024
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.
|
|