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

Variablenstruktur von Datenbaustein übernehmen

 

leizi
Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 27.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2021, 10:55     Titel: Variablenstruktur von Datenbaustein übernehmen
  Antworten mit Zitat      
Hallo

Ich arbeite mit Datenbausteinen und muss diese öfters in Matlab einlesen. Da diese Bausteine nicht immer die gleiche Struktur haben, wäre es sehr hilfreich, das Datenfile auszulesen und die gleiche Struktur in Matlab aufzubauen.

Gibt es eine Funktion, um die Variablenstruktur nachzubauen?
Als Beispiel:
Datenfile:
Array a(1, 1):= ... bis a(3, 1000):= ...

Das gleiche Array sollte dann auch im Workspace verfügbar sein.
Optimal wäre es, wenn gleiches auch mit Strukturen möglich wäre.

Danke im Voraus, mfg
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

wenn ... jeweils für eine Zahl steht, dann würde ich ein Array empfehlen, ansonsten ein Cell Array, da die Zeilen / Spalten ja keine Namen haben.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
leizi
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 27.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2021, 13:38     Titel:
  Antworten mit Zitat      
Hy

Danke für die Info, habe mein Problem wohl etwas schlecht formuliert.
Ich kennen die Größe bzw. Dimension des Arrays nicht. Je nachdem, welche Arrays im Textfile hinterlegt sind, sollten die Arrays mit den Werten befüllt werden und im Workspace abgelegt werden.

Die Arrays können z.B. A(3,100, 100) groß sein, aber auch A(1000).
Mein Problem ist, wie erstelle ich ein Array mit der gleichen Dimension wie im Textfile und befülle diese dann mit den Werten vom Textfile.

Danke, mfg
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.06.2021, 13:40     Titel:
  Antworten mit Zitat      
Hallo,

wie kannst du denn die Information aus dem Textfile entnehmen?

Ideal wäre es, wenn du eine Beispieldatei und bisher zum Import verwendeten Code anhängen kannst.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
leizi
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 27.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2021, 13:54     Titel:
  Antworten mit Zitat      
Hy

Sehr gerne, aber bitte nicht steinigen, der Code ist nicht besonders schön, sondern mal zum testen...
Funktioniert bisher mit auslesen von Arrays mit einer Dimension und Strukturen bis Tiefe 5 - aber leider nicht für Mehrdimensionale Arrays.

Ein Beispiel von dem DB, den ich noch nicht auslesen kann, ist ebenfalls im Anhnang.

Danke, mfg

ReadDB.m
 Beschreibung:

Download
 Dateiname:  ReadDB.m
 Dateigröße:  2.54 KB
 Heruntergeladen:  178 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
leizi
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 27.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2021, 13:56     Titel:
  Antworten mit Zitat      
Hier noch der zugehörige DB (das Textfile, aus dem gelesen werden soll)

DB_Measurement.txt
 Beschreibung:

Download
 Dateiname:  DB_Measurement.txt
 Dateigröße:  219.19 KB
 Heruntergeladen:  184 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 10.06.2021, 19:14     Titel:
  Antworten mit Zitat      
Hallo,

durch den Code habe ich mich jetzt nicht durchgewühlt. Es ist zwar vielleicht nicht die laufzeiteffizienteste Möglichkeit, aber man kann aus dem bestehenden Code MATLAB-Code basteln und ihn dann ausführen.
Code:
content = fileread('DB_Measurement.txt');
variableDef = extractBetween(content, 'BEGIN', 'END_DATA_BLOCK');
variableDef = replace(variableDef, ["[", "]", ":="], ["(", ")", "="]);
eval(variableDef{1})


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
leizi
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 27.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.06.2021, 10:20     Titel:
  Antworten mit Zitat      
Hy

Danke für die Info, ich hätte wohl dazu sagen sollen, dass ich Octave verwende.
Muss extractBetween noch anpassen...
Mal schauen, ob es dann klappt.

mfg
Private Nachricht senden Benutzer-Profile anzeigen
 
leizi
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 27.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.06.2021, 13:37     Titel:
  Antworten mit Zitat      
Hy

Besten Dank - ich lese das File zwar zeilenweise aus und habe strrep statt replace verwendet, aber ansonsten funktioniert das Megamäßig!!!

Danke!
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 - 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.