1 / 38

CSE 1 23

CSE 1 23. Lecture 9. F ormatted Input/Output Operations. fprintf Function. Format effects only the display of variables not their values through program execution. fpintf function writes formatted data in a user specified format to a file. fprintf( fid,format,val1,val2, …. ).

Télécharger la présentation

CSE 1 23

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSE 123 Lecture 9 Formatted Input/Output Operations

  2. fprintf Function Format effects only the display of variables not their values through program execution fpintf function writes formatted data in a user specified format to a file fprintf(fid,format,val1,val2, ….) fid :the file id to which data will be written (no fid for printing on CW) format :the format string. % always marks the beginning of a format The structure of a format specifier %-12.5e Marker (Required) Field Width (Optional) Precision (Optional) Format Descriptor (Required) Modifier (Optional)

  3. Common format specifier notation for fprintf

  4. Escape characters in Format strings

  5. Example: Decimal (integer) data is displayed using %d format specifier. If a non decimal number is displayed with the %d specifier, the specifier will be ignored and the number will be displayed in exponential format fprintf(‘%6d\n’,123.4) produces 1.234000e+002

  6. Example: floating point (real) data is displayed using %e, %f and %g format specifiers

  7. Example: character data may be displayed with %c or %s format specifiers.

  8. Examples: x = 0:.1:1; y = [x; exp(x)]; %fid = fopen('exp.txt', 'wt'); fprintf(fid, '%6.2f %12.8f\n', y); %fclose(fid) fprintf( ... 'A unit circle has circumference %g radians.\n', 2*pi) A unit circle has circumference 6.283186 radians. B = [8.8 7.7; 8800 7700] fprintf(1, 'X is %6.2f meters or %8.3f mm\n', 9.9, 9900, B) X is 9.90 meters or 9900.000 mm X is 8.80 meters or 8800.000 mm X is 7.70 meters or 7700.000 mm

  9. Text file (.txt) Microsoft Excel file (.xls) Binary file Data Import-Export • Why is it important? • Lab experiment results are: • usually recorded in lab (even on paper) • Put together and stored into a data file • Analyzed using mathematical tools • What do we want to export? • Save everything in the workspace for post analysis. • Save a selected number of results from the analysis in a text file(formatted or not)

  10. Importing data • Two common ways • Direct input through the keyboard (using the input function) • Good for individual input. • Not so good for large amount of data. • Use existing data stored in a file and import them into Matlab. • Good for any data set size. • Need to know the format of the data.

  11. Depending on the type of data file Different import function Importing data • Different types of data files • Text based files = formatted data for user usage. (.txt .dat ) • Usually follows the American Standard Code for Information Interchange (ASCII) Binary files = Pre-converted data for computer usage. (.bin .mat) • Software specific format = formatted data for software usage (.xls)

  12. test1.txt 0 0 1.0000 0.3090 2.0000 0.5878 3.0000 0.8090 4.0000 0.9511 5.0000 1.0000 6.0000 0.9511 7.0000 0.8090 8.0000 0.5878 9.0000 0.3090 10.0000 0.0000 Importing data Function load Syntax: load filename load filename loads all the variables from filename If filename has an extension other than .mat, load treats the file as ASCII data. If filename has no extension, load looks for file named filename or filename.mat and treats it as a binary MAT-file. >> load test1.txt; >> whos Name Size Bytes Class test1 11x2 176 double array

  13. test2.txt 7.2;8.5;6.2;6.6 5.4;9.2;8.1;7.2 test3.txt 7.2; 8.5; 6.2; 6.6 5.4; 9.2; 8.1; 7.2 Importing data Function dlmread Syntax: A = dlmread('filename', 'delimiter'); dlmread command works even if the contents of filename has spaces: >> A=dlmread('test2.txt',';') A = 7.2000 8.5000 6.2000 6.6000 5.4000 9.20008.1000 7.2000

  14. Importing data Function textread Syntax: [A,B,C,...] = textread('filename','format') [A,B,C,...] = textread('filename','format',N) [A,B,C,...] = textread('filename','format') reads data from the file filename into the variables A,B,C, and so on, using the specified format, until the entire file is read. textread is useful for reading text files with known mixed formats. Both fixed and free format files can be handled. The format needs to be specified with a specifier like fprintf%s for string, %f for fix point notation %u for integers [A,B,C,...] = textread('filename','format',N) reads data from the file 'filename' N times.

  15. test4.txt Ann Type1 12.34 45 Yes Joe Type2 45.67 67 No Importing data >> [A B C D E]=textread('test4.txt',' %s %s %f %f %s') A = 'Ann' 'Joe' B = 'Type1' 'Type2' C = 12.3400 45.6700 D = 45 67 E = 'Yes' 'No' >> [A B C D E]=textread('test4.txt',' %s %s %f %f %s',1) A = 'Ann' B = 'Type1' C = 12.3400 D = 45 E = 'Yes'

  16. Importing data Function fscanf: Read formatted data from file  Syntax: A = fscanf(fid, format) [A,count] = fscanf(fid, format, size) A = fscanf(fid, format) reads data from the file specified by fid, converts it according to the specified format string, and returns it in matrix A. Argument fid is an integer file identifier obtained from fopen. format is a string specifying the format of the data to be read. [A,count] = fscanf(fid, format, size) reads the amount of data specified by size, converts it according to the specified format string, and returns it along with a count of values successfully read. size is an argument that determines how much data is read. Options n Read at most n numbers, characters, or strings. inf Read to the end of the file. [m,n] Read at most (m*n) numbers, characters, or strings. Fill a matrix of at most m rows in column order. n can be inf, but m cannot.

  17. Importing data Example 1: fid = fopen('exp.txt', 'r'); a = fscanf(fid, '%g %g', [2 inf]) % It has two rows now. a = a'; fclose(fid) xdata.txt 1 12 3 4 8 a = 1 12 3 4 8 nvals = 5 Example 2: clc;clear; fileID=fopen(‘xdata.txt', 'r' ); [a,nvals]=fscanf(fileID,'%d ',inf); fclose(fileID); a nvals

  18. Data Format Sample File Extension Matlab function 1 2 3 4 5 6 7 8 9 10 .txt .dat or other load 1; 2; 3; 4; 5 6; 7; 8; 9; 10   or 1, 2, 3, 4, 5 6, 7, 8, 9, 10 .txt .dat .csv or other dlmread or csvread Ann Type1 12.34 45 Yes Joe Type2 45.67 67 No .txt .dat or other textread or fscanf Grade1 Grade2 Grade3 91.5 89.2 77.3 88.0 67.8 91.0 67.3 78.1 92.5 .txt .dat or other textread or fscanf Importing data

  19. Tips for loading data Set up the PATH Syntax: path(path,'newpath') View or change the MATLAB directory search path path(path,'c:/temp'); path(path,‘z:/ME102');

  20. test001.txt test002.txt test003.txt 0 0 1.0000 0.3090 2.0000 0.5878 3.0000 0.8090 4.0000 0.9511 5.0000 1.0000 6.0000 0.9511 7.0000 0.8090 8.0000 0.5878 9.0000 0.3090 10.0000 0.0000 0 0 1.0000 0.3090 2.0000 0.5878 3.0000 0.8090 4.0000 0.9511 5.0000 1.0000 6.0000 0.9511 7.0000 0.8090 8.0000 0.5878 9.0000 0.3090 10.0000 0.0000 0 0 1.0000 0.3090 2.0000 0.5878 3.0000 0.8090 4.0000 0.9511 5.0000 1.0000 6.0000 0.9511 7.0000 0.8090 8.0000 0.5878 9.0000 0.3090 10.0000 0.0000 Tips for loading data Use for loops to load entire series of files for j=1:N end name1=‘test00'; name2=num2str(j); name3=‘.txt’; NAME=[name1 name2 name3]; F=load(NAME); A(:,1)= F(:,1); A(:,j+1)= F(:,2);

  21. Exporting data Function save Syntax: save filename save filename stores all the workspace variables in filename.mat in the current directory Selected variables can be saved: save filename A B C stores the variables A B and C in filename.mat in the current directory

  22. Exporting data Three Steps: Functions fopen, fprintf and fclose 1 fopen: opens a file or obtain information about open files Syntax: fid = fopen(filename,permission) permission= 'r‘ Open file for reading (default). 'w‘ Open file, or create new file, for writing; discard existing contents, if any. 'a‘ Open file, or create new file, for writing; append data to the end of the file.

  23. Exporting data fopenfile permissions

  24. Exporting data Functions fopen,fprintf and fclose 2 fprintf: Used the same way as display function, except that this time, the formatting of the data is retained in the data file. Syntax: fprintf(fid,format,A,...) Formats the data in the real part of matrix A (and in any additional matrix arguments) under control of the specified format string, and writes it to the file associated with file identifier fid. 3 fclose: close one or more open files Syntax: fclose(fid)

  25. Exp.txt 0.00 1.00000000 0.10 1.10517092 0.20 1.22140276 0.30 1.34985881 0.40 1.49182470 0.50 1.64872127 0.60 1.82211880 0.70 2.01375271 0.80 2.22554093 0.90 2.45960311 1.00 2.71828183 File created in current directory Exporting data Functions fopen, fprintf and fclose x = 0:0.1:1; Y = [x; exp(x)]; fid = fopen('Exp.txt','w'); fprintf(fid,'%6.2f %12.8f \n',Y); fclose(fid)

  26. Importing data(more…) Function csvread Syntax: M = csvread(filename) M = csvread(filename, row, col) M = csvread(filename, row, col, range) M = csvread(filename) reads a comma-separatedvalue formatted file, filename. The filename inputis a string enclosed in single quotes. The result is returned in M.The file can only contain numeric values. M = csvread(filename, row, col) readsdata from the comma-separated value formatted file starting at the specifiedrow and column. The row and column arguments are zero based, so that row=0 and col=0 specifythe first value in the file. M = csvread(filename, row, col, range) readsonly the range specified. Specify range using the notation [R1C1 R2 C2] where (R1,C1) isthe upper left corner of the data to be read and (R2,C2)is the lower right corner. You can also specify the range using spreadsheetnotation, as in range = 'A1..B7'.

  27. Importing data(more…) Example:csvread csvlist.dat 02, 04, 06, 08, 10, 12 03, 06, 09, 12, 15, 18 05, 10, 15, 20, 25, 30 07, 14, 21, 28, 35, 42 11, 22, 33, 44, 55, 66 csvread('csvlist.dat') ans = 2 4 6 8 10 12 3 6 9 12 15 18 5 10 15 20 25 30 7 14 21 28 35 42 11 22 33 44 55 66

  28. Importing data(more…) To read the matrix starting with zero-based row 2, column 0, and assignit to the variable m, Example:csvread m = csvread('csvlist.dat', 2, 0) m = 5 10 15 20 25 30 7 14 21 28 35 42 11 22 33 44 55 66

  29. Importing data(more…) To read the matrix bounded by zero-based (2,0) and (3,3) and assignit to m, Example:csvread m = csvread('csvlist.dat', 2, 0, [2,0,3,3]) m = 5 10 15 20 7 14 21 28

  30. Exporting data(more…) Function csvwrite Syntax: csvwrite(filename,M) csvwrite(filename,M,row,col) csvwrite(filename,M)writes matrix M into filename ascomma-separated values. The filename input is a stringenclosed in single quotes. csvwrite(filename,M,row,col)writesmatrix M into filename starting at thespecified row and column offset. The row and column arguments are zero based,so that row=0 and C=0 specify the firstvalue in the file.

  31. Exporting data(more…) Example:csvwrite m = [3 6 9 12 15; 5 10 15 20 25; ... 7 14 21 28 35; 11 22 33 44 55]; csvwrite('csvlist.dat',m) type csvlist.dat 3,6,9,12,15 5,10,15,20,25 7,14,21,28,35 11,22,33,44,55

  32. Exporting data(more…) Example:csvwrite m = [3 6 9 12 15; 5 10 15 20 25; ... 7 14 21 28 35; 11 22 33 44 55]; csvwrite('csvlist.dat',m,0,2) type csvlist.dat ,,3,6,9,12,15 ,,5,10,15,20,25 ,,7,14,21,28,35 ,,11,22,33,44,55

  33. Importing data(more…) Function xlsread reads MS Excel files Syntax: num = xlsread(filename) num = xlsread(filename, -1) num = xlsread(filename, sheet, 'range‘ ) num = xlsread(filename) returnsnumeric data in double array num fromthe first sheet in the Microsoft Excel spreadsheet file named filename.The filename argument is a string enclosed in single quotes. num = xlsread(filename, -1) opensthe file filename in an Excel window, enabling you to interactivelyselect the worksheet to be read and the range of data on that worksheet toimport. num = xlsread(filename, sheet, 'range') readsdata from a specific rectangular region (range) of theworksheet specified by sheet.

  34. Importing data(more…) Example:xlsread testdata1.xls 1 6 2 7 3 8 4 9 5 10 A = xlsread('testdata1.xls') A = 1 6 2 7 3 8 4 9 5 10

  35. Importing data(more…) Example:xlsread testdata1.xls 1 6 2 7 3 8 4 9 5 10 A = xlsread('testdata1.xls‘,-1) A = 1 6 2 7 3 8 4 9 5 10

  36. Importing data(more…) Example:xlsread testdata1.xls 1 6 2 7 3 8 4 9 5 10 A = xlsread('testdata1.xls‘,1,’A4:B5’) A = 4 9 5 10

  37. Exporting data(more…) Function xlswrite Syntax: xlswrite(filename, M) xlswrite(filename, M, sheet, 'range') xlswrite(filename, M)writes matrix M tothe Excel file filename. The filename inputis a string enclosed in single quotes. The input matrix M isan m-by-n numeric, character, or cellarray, where m < 65536 and n < 256. The matrix data is written to the first worksheet in the file, startingat cell A1. xlswrite(filename, M, sheet, 'range')writesmatrix M to a rectangular region specified by range inworksheet sheet of the file filename.

  38. Exporting data(more…) Example:xlswrite xlswrite('testdata', [12.7 5.02 -98 63.9 0 -.2 56]) d = {'Time', 'Temp'; 12 98; 13 99; 14 97}; s = xlswrite('tempdata.xls', d, 'Temperatures', 'E1') tempdata.xls Time Temp 12 98 13 99 14 97

More Related