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

unteschiedliche daten in csv-dateien in einheitliche matrix

 

ka404
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 29.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.05.2013, 19:05     Titel: unteschiedliche daten in csv-dateien in einheitliche matrix
  Antworten mit Zitat      
Hallo, ich hab da eine sehr koomplexe frage und zwar will ich Daten (nur Zahlen) aus csv-dateien herauslesen also mit csvread, nun ist das Problem das die Dateien unterschiedliche Struktur aufweisen können, (Programm soll unniversell werden) deswegen muss ein einheitlicher Aufbau hergestellt werden:
- Matrix MD mit 3 Spalten
- 1. Spalte sind die Zeitwerte oder eine fortlaufende Nummer 1, 2, 3, …
- 2. Spalte sind die Datenwerte
- 3. Spalte enthält „1“ (aktiver Punkt) oder „0“ (deaktivierter Punkt)

die funktion soll so aussehen, problem ist aber auch wieder die variable datenn:

function [nb,FB,np,AP] = set_ber(daten,typ)

Eingabevariable daten :
Sie kann entweder ein Zeilen- oder Spaltenvektor eines durchnummerierten Zeitverlaufs sein (dann wird also die Zeit nicht extra mit übergeben)
oder eine Matrix aus zwei Zeilen oder zwei Spalten (dann ist die erste Zeile/Spalte der Zeitvektor und in der zweiten stehen die Daten),
oder eine Matrix aus drei Zeilen oder drei Spalten (dann ist die erste Zeile/Spalte der Zeitvektor, in der zweiten stehen die Daten, in der dritten wird angezeigt, ob es aktivierte (=1) oder deaktivierte Punkte (=0) sind),

Kann mir jemand Bitte helfen?
Private Nachricht senden Benutzer-Profile anzeigen


Bluesmaster
Forum-Century

Forum-Century



Beiträge: 203
Anmeldedatum: 13.11.11
Wohnort: Gera
Version: 2012a
     Beitrag Verfasst am: 30.05.2013, 08:31     Titel:
  Antworten mit Zitat      
Entschuldigung, ich finde das etwas verwirrend geschrieben.

Die Funktion

set_ber

soll

CSV-Dateien lesen die mal 1 mal 2 oder mal 3 Spalten/ Zeilen enthalten kann?

Oder soll die Funktion nach dem Auslesen mit den aufbereiteten Daten
gefüttert werden? Und wenn ja was ist "typ" oder "nb" oder "FB" ...

Für mich bitte nochmal in einfachen klaren Worten

Gruß

Blues
Private Nachricht senden Benutzer-Profile anzeigen
 
ka404
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 95
Anmeldedatum: 29.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.05.2013, 14:32     Titel:
  Antworten mit Zitat      
Hallo,

Vielen Dank schon mal für die schnelle Rückmeldung, und sorry das ich es so komisch formuliert haben, hier noch mehr Informationen. Vielleicht wird es dann verständlicher:

Das Programm set_ber soll als Funktion aus einem übergeordneten Programm aufgerufen werden können.
Da die übergebenen Daten unterschiedliche Struktur aufweisen können, ist als erstes ein einheitlicher Aufbau herzustellen, z.B. so
- Matrix MD mit 3 Spalten usw...
Dann soll sich ein Fenster öffnen, in dem die Datenreihe als dunkelblaue Linie in einem xy-Koordinatensystem dargestellt ist. Deaktivierte Punkte sollen aber hellblau erscheinen.

Eingabevariable typ :
Sie legt fest, wie die Ausgabe der ausgewählten Bereiche und Punkte erfolgt
Ausgabevariable nb : Anzahl der gesetzten Bereiche
Ausgabevariable FB : Das ist eine Matrix vom Typ (nb,3)


also es ist sehr komplex und zunächst meine Frage ist:
wie ich diese unterschiedlichen Dateien einlesen kann also sicherlich einfach mit cvsread
und wie ich dann erkenne wie viele Spalten und Zeilen dort sind.
Diese Daten muss ich dann einheitlich in eine Matrix bringen
stehen also z.B. in der ersten Spalte keine (zeit)werte so soll in die matrix in der ersten spalte fortlaufen die nummer 1,2,3 erscheinen, sind (zeit)werte vorhanden so soll diese auch in die erste Spalte geschrieben

ist das deutlicher? sonst versuch ich meine Fragen kürzer zu fassen...
Private Nachricht senden Benutzer-Profile anzeigen
 
markuman
Forum-Guru

Forum-Guru


Beiträge: 320
Anmeldedatum: 14.12.12
Wohnort: ---
Version: 2013a/2013b, Octave 3.6.4, 3.7.7
     Beitrag Verfasst am: 30.05.2013, 20:36     Titel:
  Antworten mit Zitat      
Das ist alles super schwammig, und in wirklichkeit hört es sich so an, als ob du kein konkretes Problem hast, sondern ein fertiges Script haben möchtest, was das alles für dich erledigt.

ka404 hat Folgendes geschrieben:

Diese Daten muss ich dann einheitlich in eine Matrix bringen
stehen also z.B. in der ersten Spalte keine (zeit)werte so soll in die matrix in der ersten spalte fortlaufen die nummer 1,2,3 erscheinen, sind (zeit)werte vorhanden so soll diese auch in die erste Spalte geschrieben


Naja, dann mach es doch so.
Erst tmp=csvread.
if SIND ZEITWERTE IN tmp(:,1)?
- dann pack tmp(:,1) in MD.
else nummern=1:size(tmp,1);
- pack nummern' in MD.


Irgendwo musst du anfangen, und wenn dann irgendwas nicht funktioniert wie du es dir vorstellst, den code zeigen und nachfragen.
_________________

DIY OR DIE Cool

entropie=char(floor(94*rand(1, round(100.*rand)) + 32))
https://github.com/markuman
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.