Modellierung und Simulation - Daten & Dateizugriff
Zur Navigation springen
Zur Suche springen
| Autor: | Prof. Dr.-Ing. Schneider |
| Termin: | 11.04.2025 |
Aufgabe 5.1 - Erzeugen und Lesen von mat-Dateien
- Schreiben Sie ein Skript, in welchem Sie eine Einheitsmatrix, eine Nullmatrix und ein String mit dem Inhalt „test“ erzeugen.
- Erstellen Sie in MATLAB® einen Ordner mit dem Namen: „Daten“ (Befehle:
mkdir()). - Speichern Sie alle vorher erzeugten Variablen in eine mat-Datei im erzeugten Ordner (Befehle:
save()) - Speichern Sie nur die Matrizen in einer neuen mat-Datei mit den Namen des vorher erzeugten Strings im erzeugten Ordner.
- Löschen Sie die an Teilaufgabe a) erzeugten Variablen aus dem Workspace und laden Sie die vorher erzeugte
„test.mat“Datei aus dem Ordner (Befehle:load()) - Nutzen Sie die Benutzeroberfläche (
uigetfile), um Daten zu laden.
Nützliche Befehle: clear, close, clc, mkdir, save, load, uigetfile
| Musterlösung 5.1 |
%% Musterlösung Aufgabe 3.1 - Erzeugen und Lesen von mat-Dateien
clear all; close all; clc;
%5.1.1)
A = eye(10);
B = zeros(20);
name = 'test';
%5.1.2)
foldername = 'Daten';
mkdir(foldername);
%5.1.3)
filename = 'c)';
save([foldername '\' filename]);
%5.1.4)
filename = name;
save([foldername '\' filename],'A','B');
%5.1.5)
clear A B name
load([foldername '\' filename]);
%5.1.6
[file,path] = uigetfile({'*.mat'});
selectedfile = fullfile(path,file);
load(selectedfile);
|
Aufgabe 5.2 - Erzeugen und Lesen von txt-Dateien
- Schreiben Sie ein Skript, in welchem Sie zunächst eine 5x5 Matrix erzeugen, welche zeilenweise aufsteigend die Werte von π bis 25π enthält.
- Schreiben Sie diese Matrix in eine Textdatei mit den Anforderungen (Befehl: dlmwrite()):
- Zahlen in einer Zeile sollen mit einem Tabstopp getrennt werden.
- Zeilen sollen mit Zeilenumbrüchen getrennt werden.
- Zahlen sollen auf 6 Stellen genau gespeichert werden
- Laden Sie den Inhalt der Textdatei in eine neue Matrix (Befehl: dlmread())
Nützliche Befehle: dlmwrite(), dlmread()
| Musterlösung 5.2 |
%% Musterlösung 5.2 - Erzeugen und Lesen von txt-Dateien
clear all;
close all;
clc;
A = ones(5,5);
B = 1:25;
for i=1:25
A(i) = B(i)*pi;
end
A = A';
filename = 'TextDatei.txt';
dlmwrite(filename,A,'delimiter','\t','precision',6,'newline','pc');
C = dlmread(filename)
|
Aufgabe 6.1 - Cell Arrays
- Erzeugen Sie Tabelle 1 als Cell-Array in MATLAB® (Befehle: cell(), num2cell()).
- Wandeln Sie das Cell-Array in eine Tabelle um (Befehle: cell2table()).
- Erzeugen Sie eine Textdatei und speichern Sie dort das erstellte Cell -Array (Befehle: fopen(), fprintf(), fclose()).
Tutorial: MATLAB®: Export Cell Array to Text File
| Name | Alter | Beruf |
|---|---|---|
| Walter White | 50 | Lehrer |
| Saul Goodman | 45 | Anwalt |
| Skyler White | 47 | Einzelhandelskauffrau |
| Jesse Pinkman | 26 | arbeitssuchend |
Nützliche Befehle: cell, num2cell, cell2table, fopen, fclose, fprintf
| Musterlösung 6.1 |
%% Musterlösung Aufgabe 6.1 - Cell Arrays
clear all;
close all;
clc;
%6.1.1)
Header = {'Name','Alter','Beruf'};
Names = {'Walter White';'Saul Goodman';'Skyler White';'Jesse Pinkman'};
Alter = [50; 45; 47; 26];
Beruf = {'Lehrer';'Anwalt';'Einzelhandelskauffrau';'Arbeitslos'};
cellarray = cell(5,3);
cellarray(1,:) = Header;
cellarray(2:5,1) = Names;
cellarray(2:5,2) = num2cell(Alter);
cellarray(2:5,3) = Beruf;
%6.1.2)
table = cell2table(cellarray);
%6.1.3)
filename = 'Teil_3_CellArray.txt';
fileID = fopen(filename,'w');
formatSpecHeader = '%s %s %s\r\n';
formatSpec = '%s %d %s\r\n';
[nrows,ncols] = size(cellarray);
for row = 1:nrows
if row==1
fprintf(fileID,formatSpecHeader,cellarray{row,:});
else
fprintf(fileID,formatSpec,cellarray{row,:});
end
end
fclose(fileID);
|
→ MATLAB® Befehlsübersicht
→ zurück zum Hauptartikel: BSE Modellierung und Simulation - SoSe25