MATLAB Data Importeren: Efficiënte Manieren voor Externe Bestanden
Data importeren in MATLAB betekent data laden vanuit een extern bestand. De importdata functie laadt diverse bestandsformaten en heeft vijf syntaxvormen:
| # | Functie & Beschrijving |
|---|---|
| 1 | A = importdata(filename) - Laadt data in array A uit bestand |
| 2 | A = importdata('-pastespecial') - Laadt van klembord |
| 3 | A = importdata(___, delimiterIn) - Specificeert kolomscheidingsteken |
| 4 | A = importdata(___, delimiterIn, headerlinesIn) - Laadt numerieke data vanaf regel headerlinesIn+1 |
| 5 | [A, delimiterOut, headerlinesOut] = importdata(___) - Retourneert gedetecteerde delimiter en header regels |
Voorbeeld 1: Afbeelding Laden
filename = 'smile.jpg'; A = importdata(filename); image(A);
Voorbeeld 2: Tekstbestand met Delimiter en Headers
Bestand weeklydata.txt (spatie-gedelimiteerd met kolomheaders):
SunDay MonDay TuesDay WednesDay ThursDay FriDay SaturDay 95.01 76.21 61.54 40.57 55.79 70.28 81.53 73.11 45.65 79.19 93.55 75.29 69.87 74.68 ...
filename = 'weeklydata.txt';
delimiterIn = ' ';
headerlinesIn = 1;
A = importdata(filename, delimiterIn, headerlinesIn);
for k = 1:7
disp(A.colheaders{1,k});
disp(A.data(:,k));
disp(' ');
end
Voorbeeld 3: Importeren vanuit Klembord
A = importdata('-pastespecial')
Low-Level Bestands I/O
importdata is een high-level functie. Low-level I/O functies bieden meer controle maar vereisen gedetailleerde bestandsinformatie.
| Functie | Beschrijving |
|---|---|
| fclose | Sluit open bestand(en) |
| feof | Test op end-of-file |
| ferror | Info over bestands I/O fouten |
| fgetl | Lees regel (zonder newline) |
| fgets | Lees regel (met newline) |
| fopen | Open bestand of info over open bestanden |
| fprintf | Schrijf data naar tekstbestand |
| fread | Lees data uit binair bestand |
| frewind | Bestandspositie naar begin |
| fscanf | Lees geformatteerde data uit tekstbestand |
| fseek | Ga naar specifieke positie in bestand |
| ftell | Huidige positie in open bestand |
| fwrite | Schrijf data naar binair bestand |
Tekstdata Importeren met Low-Level I/O
Belangrijke functies: fscanf (geformatteerd), fgetl/fgets (regel voor regel), fread (byte/bit niveau).
Uitgebreid Voorbeeld: Regenvaldata
Bestand myfile.txt met herhalende metingen. Stappen:
- Open bestand met
fopenvoor file identifier - Beschrijf data met formaatspecifieke (
%s,%d,%f) - Sla literale karakters over in formaatbeschrijving
- Gebruik
*in specifier om velden over te slaan - Lees M sets van metingen met for-lus
- Sla data op in structuur
mydatamet veldentime,month,raindata
filename = '/data/myfile.txt';
rows = 7; cols = 5;
fid = fopen(filename);
M = fscanf(fid, '%*s %*s\n%*s %*s %*s %*s\nM=%d\n\n', 1);
for n = 1:M
mydata(n).time = fscanf(fid, '%s', 1);
mydata(n).month = fscanf(fid, '%s', 1);
mydata(n).raindata = fscanf(fid, '%f', [rows, cols])';
end
for n = 1:M
disp(mydata(n).time), disp(mydata(n).month)
disp(mydata(n).raindata)
end
fclose(fid);
MATLAB
- Azure File Storage Uitgelegd: Beginnersgids voor Veilige, Schaalbare Cloudopslag
- MATLAB: Uitgebreid Overzicht van een Leidende Numerieke Rekenomgeving
- Variabelen in MATLAB Begrijpen: Basis en Voorbeelden
- MATLAB Datatypes: Uitgebreide Gids
- MATLAB Operatoren: Complete Gids voor Rekenkundige, Logische en Bitwise Operaties
- MATLAB Matrix Basis: Data Aanmaken, Benaderen en Manipuleren
- MATLAB: Multidimensionale en Speciale Arrays Beheersen
- MATLAB Dubbele Punt Notatie: Vectors Maken & Efficiënt Itereren
- MATLAB Getallen: Typen, Opslag en Conversie
- MATLAB Strings: Maken, Manipuleren en Functies
- MATLAB Functies: Definitie, Werkruimte, In- en Outputs