English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MATLAB Datenimport (ImportData)

Datenimport in MATLAB bedeutet das Laden von Daten aus externen Dateien. Dies ist derimportdataDiese Funktion ermöglicht das Laden verschiedener Datenformate aus verschiedenen Daten dateien. Es gibt fünf verschiedene Formen-

NummerFunktionsbeschreibung
1

A = importdata(filename)

ausfilenamestellt dieDateiLade die Daten in das Array A.

2

A = importdata('-pastespecial')

Lade Daten nicht aus einer Datei, sondern aus der Zwischenablage.

3

A = importdata(___, delimiterIn)

Interpretiere delimiterIn als Trennzeichen für Spalten in einer ASCII-Datei, einem Dateinamen oder Daten aus der Zwischenablage. Man kann delimiterIn bei jedem Eingangsparameter der obigen Syntax verwenden.

4

A = importdata(___, delimiterIn, headerlinesIn)

Lade Daten aus einer ASCII-Datei, einem Dateinamen oder der Zwischenablage und beginne mit der ZeileheaderlinesIn + 1Beginne mit dem Lesen der numerischen Daten.

5

[A, delimiterOut, headerlinesOut] = importdata(___)

Mit jedem Eingangsparameter aus der vorgeschriebenen Syntax gibt die Funktion delimiterOut den erkannten Trennzeichen der ASCII-Datei zurück und headerlinesOut die erkannte Anzahl der Kopfzeilen.

Standardmäßig unterstützt Octave dies nichtimportdata()Funktion, daher müssen Sie das Softwarepaket suchen und installieren, damit der folgende Beispiel für eine Octave-Installation geeignet ist.

Beispiel1

Lassen Sie uns das Bilddatei laden und anzeigen. Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein-

filename = 'smile.jpg';
A = importdata(filename);
image(A);

Wenn Sie die Datei ausführen, zeigt MATLAB das Bilddatei an. Es muss jedoch im aktuellen Verzeichnis gespeichert werden.

Beispiel2

In diesem Beispiel laden wir eine Textdatei und geben den Trennzeichen und die Spaltenüberschriften an. Lassen Sie uns eine durch Leerzeichen getrennte ASCII-Datei erstellen, die die folgenden Überschriften enthältweeklydata.txtsSpaltenüberschriften.

Unser Textdatei weeklydata.txt sieht so aus-

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
60.68   41.85   92.18    91.69       81.32    90.38   74.51
48.60   82.14   73.82    41.03       0.99     67.22   93.18
89.13   44.47   57.63    89.36       13.89    19.88   46.60

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein-

filename = 'weeklydata.txt';
delimiterIn = ' ';
headerlinesIn = 1;
A = importdata(filename,delimiterIn,headerlinesIn);
% View data
for k = [1:7}]
   disp(A.colheaders{1, k})
   disp(A.data(:, k))
   disp(' ')
end

Wenn das Skript ausgeführt wird, wird das folgende Ergebnis angezeigt-

SunDay
   95.0100
   73.1100
   60.6800
   48.6000
   89.1300
 
MonDay
   76.2100
   45.6500
   41.8500
   82.1400
   44.4700
 
TuesDay
   61.5400
   79.1900
   92.1800
   73.8200
   57.6300
WednesDay
   40.5700
   93.5500
   91.6900
   41.0300
   89.3600
 
ThursDay
   55.7900
   75.2900
   81.3200
   0.9900
   13.8900
 
FriDay
   70.2800
   69.8700
   90.3800
   67.2200
   19.8800
SaturDay
   81.5300
   74.6800
   74.5100
   93.1800
   46.6000

Beispiel3

In diesem Beispiel laden wir Daten aus der Zwischenablage.

Kopieren Sie die folgenden Zeilen in die Zwischenablage-

Mathematics ist einfach

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein-

A = importdata('-pastespecial')

Wenn das Skript ausgeführt wird, wird das folgende Ergebnis angezeigt-

A = 
   'Mathematics ist einfach'

UntergrunddateiI / O

Die Funktion importdata ist eine hochrangige Funktion. MATLABs UntergrunddateiI/Die Funktion O ermöglicht eine maximale Kontrolle über die Les- und Schreibdaten von Dateien. Diese Funktionen benötigen jedoch detaillierte Dateiinformationen, um effektiv zu arbeiten.

MATLAB为字节或字符级别的读写操作提供以下函数-

MATLAB bietet folgende Funktionen für Byte- oder Zeichenebene-Lese- und Schreiboperationen
Funktion
Beschreibung

fclose

Eine oder alle geöffneten Dateien schließenfeof
Dateiende-Test

ferror/Über DateiI

Funktionen lesen formatierte Daten aus Text- oder ASCII-Dateien.O Fehlerinformationen
und

Zeilen aus einer Datei lesen, löschen Sie den Zeilenumbruch

VerwendenZeilen aus einer Datei lesen, behalten Sie den Zeilenumbruch bei
Eine Datei öffnen oder Informationen über eine geöffnete Datei abrufenfprintf
Zeit, wobei jede Zeile durch einen Zeilenumbruchzeichen getrennt wird, das von der Funktion gelesen wird.Daten in eine Textdatei schreiben
Daten aus einer Binärdatei lesenfrewind
StandardmäßigDen Dateipositionsindikator an den Anfang der geöffneten Datei bewegen
Daten aus einer Textdatei lesenfseek
Bewegen Sie sich an den angegebenen Ort in der Dateiftell
Im当前位置 der geöffneten Dateifwrite

Daten in Binärdateien schreiben / Importieren mit grundlegender I

O der Textdatendatei-

  • StandardmäßigMATLAB bietet folgende Funktionen für die grundlegende Importierung von Textdatendateien

  • Funktionen lesen formatierte Daten aus Text- oder ASCII-Dateien.fgetlundfgets

  • Zeit, wobei jede Zeile durch einen Zeilenumbruchzeichen getrennt wird, das von der Funktion gelesen wird.fread

Die Funktion liest Datenströme auf Byte- oder Bit-Ebene.

Onlinebeispiel2012Wir haben eine Textdatendatei "myfile.txt" im Arbeitsverzeichnis gespeichert. Diese Datei speichert Niederschlagsdaten für drei Monate;

Juni, Juli und August des Jahres.

Die Datei "myfile.txt" enthält wiederholte Messungen von Zeit, Monat und Niederschlag für fünf Orte. Die Kopfdaten speichern die Anzahl der Monate M; daher haben wir M Messgruppen.-

Der Datei sieht so aus
Regenfall Daten
 
Monate: Juni, Juli, August 3
12:00:00
June-2012
17.21  28.52  39.78  16.55 23.67
19.15  0.35   17.57  .00   12.01
17.92  28.49  17.40  17.06 11.09
9.59   9.33   M =31  0.23 
10.46  13.17  .00    14.89 19.33
20.97  19.50  17.65  14.45 14NaN    0.
18.23  10.34  17.95  16.46 19.34
09:10:02
July-2012
12.76  16.94  14.38  11.86 16.89
20.46  23.17  .00    24.89 19.33
30.97  49.50  47.65  24.45 34NaN    0.
18.23  30.34  27.95  16.46 19.34
30.46  33.17  .00    34.89  29.33
30.97  49.50  47.65  24.45 34NaN    0.
28.67  30.34  27.95  36.46 29.34
15:03:40
August-2012
17.09  16.55  19.59  17.25 19.22
17.54  11.45  13.48  22.55 24.01
.00    21.19  25.85  25.05 27.21
26.79  24.98  12.23  16.99 18.67
17.54  11.45  13.48  22.55 24.01
.00    21.19  25.85  25.05 27.21
26.79  24.98  12.23  16.99 18.67

NaN-

  • Wir importieren Daten aus dieser Datei und zeigen diese Daten an. Nehmen Sie folgende SchritteVerwendenfopen

  • Die Funktion öffnet die Datei und erhält den Dateidesignator.beschreiben, um Daten in der Datei zu beschreibenFormatbezeichner ,例如%s ) bedeutet Zeichenketten oder%d ) bedeutet Ganzzahlen oder%f

  • ) bedeutet Fließkommazahlen.*Um Textzeichen in der Datei zu überspringen, fügen Sie sie im Formatbezeichner ein. Um Datenfelder zu überspringen, verwenden Sie einen Stern (*) im Bezeichner.

    )。-

    M = fscanf(fid, '%*s %*s\n%*s %*s %*s %*s\nM=%d\n\n' 1);
  • Beispielsweise, um den Wert von M einzulesen und zurückzugeben, schreiben wir soStandardmäßigfscanf3Daten gemäß unserer Formatbezeichnung ein, bis keine passenden Daten mehr gefunden werden oder bis das Ende der Datei erreicht ist. Hier verwenden wir den for-Schleifendurchlauf, um7Gruppendaten, und lesen每次5Zeile und

  • Spalte.Wir erstellen im Arbeitsbereich eine Datei mit dem Namenmydata-Die Struktur, um Daten zu speichern, die aus einer Datei gelesen wurden. Diese Struktur hat drei Felder, Monat, und raindataArray.

Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein-

filename = '/data/myfile.txt';
rows = 7;
cols = 5;
 
%Datei öffnen
fid = fopen(filename);
 
%Lesen Sie die Dateikopfzeile, um M (Monatszahl) zu finden
M = fscanf(fid, '%*s %*s\n%*s %*s %*s %*s\nM=%d\n\n' 1);
 
%Lesen Sie jede Gruppe von Messdaten
for n = 1:M
   mydata(n).time = fscanf(fid, '%s', 1);
   mydata(n).month = fscanf(fid, '%s', 1);
 
   %fscanf füllt das Array in Spaltenreihenfolge
   %Ergebnis umkehren
   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
 
%Datei schließen
fclose(fid);

Wenn das Skript ausgeführt wird, wird das folgende Ergebnis angezeigt-

12:00:00
June-2012
   17.2100   17.5700   11.0900   13.1700   14.4500
   28.5200       NaN    9.5900       NaN   14.0000
   39.7800   12.0100    9.3300   14.8900   18.2300
   16.5500   17.9200       NaN   19.3300   10.3400
   23.6700   28.4900    0.3100   20.9700   17.9500
   19.1500   17.4000    0.2300   19.5000   16.4600
   0.3500   17.0600   10.4600   17.6500   19.3400
09:10:02
July-2012
   12.7600       NaN   34.0000   33.1700   24.4500
   16.9400   24.8900   18.2300       NaN   34.0000
   14.3800   19.3300   30.3400   34.8900   28.6700
   11.8600   30.9700   27.9500   29.3300   30.3400
   16.8900   49.5000   16.4600   30.9700   27.9500
   20.4600   47.6500   19.3400   49.5000   36.4600
   23.1700   24.4500   30.4600   47.6500   29.3400
15:03:40
August-2012
   17.0900   13.4800   27.2100   11.4500   25.0500
   16.5500   22.5500   26.7900   13.4800   27.2100
   19.5900   24.0100   24.9800   22.5500   26.7900
   17.2500       NaN   12.2300   24.0100   24.9800
   19.2200   21.1900   16.9900       NaN   12.2300
   17.5400   25.8500   18.6700   21.1900   16.9900
   11.4500   25.0500   17.5400   25.8500   18.6700