MATLAB练习例子三(读写文件)

返回

》 fwriteid = fopen('magic5.bin','w'); 》 whos Name Size Bytes Class fwriteid 1x1 8 double array Grand total is 1 elements using 8 bytes 》 count = fwrite(fwriteid,magic(5),'int32'); 》 status = fclose(fwriteid); 》 whos Name Size Bytes Class count 1x1 8 double array fwriteid 1x1 8 double array status 1x1 8 double array Grand total is 3 elements using 24 bytes 》 magic(5) ans = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 》 magic(5)的16进制显示

读binary数据文件 》 fid = fopen('datag.dat','r'); 》 A = fread(fid); 》 A A = 8 0 0 0 1 0 0 0 0 0 0 0 8 0 0 0 》 》 imread ex1.jpg 》 whos Name Size Bytes Class ans 923x1209x3 3347721 uint8 array Grand total is 3347721 elements using 3347721 bytes 》 imfinfo ex1.jpg ans = Filename: 'ex1.jpg' FileModDate: '04-Oct-2007 16:24:54' FileSize: 150320 Format: 'jpg' FormatVersion: '' Width: 1209 Height: 923 BitDepth: 24 ColorType: 'truecolor' FormatSignature: '' 写入ex1.bmp文件 》 imwrite(ans,'ex1.bmp','BMP') 》 help imread IMREAD グラフィックスファイルからイメージを読み込みます A = IMREAD(FILENAME,FMT)は、FILENAME内のイメージを、Aに読み 込みます。クラスはuint8です。 ファイルがグレイスケール強度イメージを含む場合、Aは2次元配列です。 ファイルがトゥルーカラー(RGB)イメージを含む場合、Aは3次元(M*N*3) 配列です。FILENAMEは、グラフィックスファイル名を指定する文字列で、 FMTはファイルの書式を指定する文字列です。 ファイルは、カレントのディレクトリ、またはMATLABパス上のディレクトリ になければなりません。 IMREADがファイルFILENAMEを見つけられない場合は、FILENAME.FMT を探します。 FMTの取りうる値を以下に示します。 'bmp' Windows Bitmap (BMP) 'hdf' Hierarchical Data Format (HDF) 'jpg' または'jpeg' Joint Photographic Experts Group (JPEG) 'pcx' Windows Paintbrush (PCX) 'tif' または'tiff' Tagged Image File Format (TIFF) 'xwd' X Window Dump (XWD) [X,MAP] = IMREAD(FILENAME,FMT)は、FILENAMEのインデックス付き イメージをXに読み込み、対応するカラーマップをMAPに読み込みます。 Xは、クラスuint8で、MAPはクラスdoubleです。カラーマップの値は、読み 込まれたときに、範囲[0,1]に再スケーリングされます。 [...] = IMREAD(FILENAME)は、その内容からファイルの書式を推測します。 [...] = IMREAD(...,IDX)は、複数のイメージをもつTIFFファイルから、1つ のイメージを読み込みます。IDXは、ファイル内のイメージの順番を指定 する整数値です。 たとえば、IDXが3ならば、IMREADは、ファイルの3番 目のイメージを読み込みます。この引数を省略すると、IMREADはファイ ルの1番目のイメージを読み込みます。 [...] = IMREAD(...,REF)は、複数のイメージをもつHDFファイルから、1つ のイメージを読み込みます。REFは、イメージを識別するために使う参照 番号を指定する整数値です。たとえば、REFが12ならば、IMREADは参照 番号が12のイメージを読み込みます(HDFファイルでは、参照番号はファ イル内のイメージの順序と対応させる必要はありません。参照番号をイ メージの順番を一致させるためには、IMFINFOを使うことができます)。 この引数を省略すると、IMREADは、ファイルの1番目のイメージを読み込 みます。 つぎの表に、IMREADが読み込むことができるイメージのタイプをまとめて 示します。 BMP 1ビット、4ビット、8ビット、24ビットの圧縮されていないイメージ。 4ビットと8ビットの実行長エンコード(RLE)イメージ。 HDF 関連するカラーマップをもつ、あるいはもたない8ビットのラスター イメージデータセット。24ビットラスターイメージデータセット。 JPEG 任意のベースラインのJPEGイメージ。一般的に使われる拡張付 きのJPEGイメージ PCX 1ビット、8ビット、24ビットのイメージ。 TIFF 1ビット、8ビット、24ビットの圧縮されていないイメージを含む任意 のベースラインのTIFFイメージ。 packbit圧縮の1ビット、8ビット、24ビットイメージ。 CCITT圧縮の1ビットイメージ。 XWD 1ビットと8ビットのZpixmaps。XYBitmaps。1ビットのXYPixmaps。 参考 IMFINFO, IMWRITE, FREAD、IMAGE, DOUBLE, UINT8. Exporting ASCII data 》 A = [ 1 2 3 4 ; 5 6 7 8 ]; 》 A A = 1 2 3 4 5 6 7 8 》 save test_data.out A -ASCII test_data.out 1.0000000e+000 2.0000000e+000 3.0000000e+000 4.0000000e+000 5.0000000e+000 6.0000000e+000 7.0000000e+000 8.0000000e+000 》 dlmwrite('test_data.out',A,';') 1;2;3;4 5;6;7;8 》 diary test_data.out 》 A A = 1 2 3 4 5 6 7 8 》 diary off mydata.dat Sally Type1 12.34 45 Yes Larry Type2 34.56 54 Yes Tommy Type1 12.34 23 No 》 [names,types,x,y,answer] = textread('mydata.dat','%s %s %f %d %s'); 》 names names = 'Sally' 'Larry' 'Tommy' 》 types types = 'Type1' 'Type2' 'Type1' 》 x x = 12.3400 34.5600 12.3400 》 y y = 45 54 23 》 answer answer = 'Yes' 'Yes' 'No' 》 ----------------------------------------- grades.txt 85 90 95 90 92 98 100 95 97 77 87 93 》 load grades.txt 》 grades grades = 85 90 95 90 92 98 100 95 97 77 87 93 》 whos Name Size Bytes Class grades 4x3 96 double array Grand total is 12 elements using 96 bytes -----------------------------------------------------------------
返回