Matlab-data-import
MATLAB-データのインポート
MATLABでデータをインポートすると、外部ファイルからデータが読み込まれます。 importdata 関数を使用すると、さまざまな形式のさまざまなデータファイルをロードできます。 次の5つの形式があります-
Sr.No. | Function & Description |
---|---|
1 |
A = importdata(filename) _filename_で示されるファイルから配列Aにデータをロードします。 |
2 |
A = importdata('-pastespecial') ファイルからではなく、システムのクリップボードからデータをロードします。 |
3 |
A = importdata(_, delimiterIn) ASCIIファイル、ファイル名、またはクリップボードデータの列区切り文字として_delimiterIn_を解釈します。 上記の構文の任意の入力引数で_delimiterIn_を使用できます。 |
4 |
A = importdata(_, delimiterIn, headerlinesIn) ASCIIファイル、ファイル名、またはクリップボードからデータを読み込み、_headerlinesIn + 1_行から始まる数値データを読み取ります。 |
5 |
[A, delimiterOut, headerlinesOut] = importdata(_) 前の構文の入力引数のいずれかを使用して、_delimiterOut_の入力ASCIIファイルの検出された区切り文字と_headerlinesOut_のヘッダー行の検出された数を返します。 |
'_デフォルトでは、Octaveは_importdata()_関数をサポートしていないため、このパッケージを検索してインストールし、Octaveのインストールで次の例を機能させる必要があります。_
例1
画像ファイルをロードして表示しましょう。 スクリプトファイルを作成し、その中に次のコードを入力します-
ファイルを実行すると、MATLABはイメージファイルを表示します。 ただし、現在のディレクトリに保存する必要があります。
例2
この例では、テキストファイルをインポートし、DelimiterとColumn Headerを指定します。 _weeklydata.txt_という名前の、列ヘッダー付きのスペース区切りASCIIファイルを作成してみましょう。
テキストファイルweeklydata.txtは次のようになります-
スクリプトファイルを作成し、その中に次のコードを入力します-
あなたがファイルを実行すると、次の結果が表示されます-
実施例3
この例では、クリップボードからデータをインポートします。
次の行をクリップボードにコピーします-
数学は簡単です
スクリプトファイルを作成し、次のコードを入力します-
あなたがファイルを実行すると、次の結果が表示されます-
低レベルのファイルI/O
_importdata_関数は高レベルの関数です。 MATLABの低レベルファイルI/O関数を使用すると、ファイルへのデータの読み取りまたは書き込みを最大限に制御できます。 ただし、これらの関数を効率的に機能させるには、ファイルに関するより詳細な情報が必要です。
MATLABは、バイトまたは文字レベルでの読み取りおよび書き込み操作のために次の機能を提供します-
Function | Description |
---|---|
fclose | Close one or all open files |
feof | Test for end-of-file |
ferror | Information about file I/O errors |
fgetl | Read line from file, removing newline characters |
fgets | Read line from file, keeping newline characters |
fopen | Open file, or obtain information about open files |
fprintf | Write data to text file |
fread | Read data from binary file |
frewind | Move file position indicator to beginning of open file |
fscanf | Read data from text file |
fseek | Move to specified position in file |
ftell | Position in open file |
fwrite | Write data to binary file |
低レベルI/Oでテキストデータファイルをインポートする
MATLABは、テキストデータファイルの低レベルのインポートのために次の機能を提供します-
- fscanf 関数は、フォーマットされたデータをテキストファイルまたはASCIIファイルで読み取ります。
- fgetl および fgets 関数は、一度に1行のファイルを読み取ります。改行文字は各行を区切ります。
- fread 関数は、バイトまたはビットレベルでデータのストリームを読み取ります。
例
作業ディレクトリに保存されたテキストデータファイル「myfile.txt」があります。 ファイルには3か月間の降雨データが保存されます。 2012年の6月、7月、8月。
myfile.txtのデータには、5つの場所での時間、月、降雨量の測定値の繰り返しセットが含まれています。 ヘッダーデータには月数Mが格納されます。 Mセットの測定値があります。
ファイルは次のようになります-
このファイルからデータをインポートし、このデータを表示します。 次の手順を実行します-
- fopen 関数でファイルを開き、ファイル識別子を取得します。
- 文字列の「%s *」、整数の「%d 」、浮動小数点数の「%f *」など、*フォーマット指定子*を使用してファイル内のデータを記述します。
- ファイル内のリテラル文字をスキップするには、フォーマットの説明にそれらを含めます。 データフィールドをスキップするには、指定子でアスタリスク( '*')を使用します。 たとえば、ヘッダーを読み取ってMの単一の値を返すには、次のように記述します-
- デフォルトでは、 fscanf は、データに一致するものが見つからないか、ファイルの最後に到達するまで、フォーマットの説明に従ってデータを読み取ります。 ここでは、3組のデータを読み取るためにforループを使用し、そのたびに7行5列を読み取ります。
- ワークスペースに_mydata_という名前の構造体を作成して、ファイルから読み取ったデータを保存します。 この構造には、time _、 month_、および_raindata_配列の3つのフィールドがあります。
スクリプトファイルを作成し、その中に次のコードを入力します-
あなたがファイルを実行すると、次の結果が表示されます-