Presentation is loading. Please wait.

Presentation is loading. Please wait.

File I/O High-Level Functions 1. Definition 2. Is a High-Level function appropriate? 3. xlsread() 4. dlmread() 1.

Similar presentations


Presentation on theme: "File I/O High-Level Functions 1. Definition 2. Is a High-Level function appropriate? 3. xlsread() 4. dlmread() 1."— Presentation transcript:

1 File I/O High-Level Functions 1. Definition 2. Is a High-Level function appropriate? 3. xlsread() 4. dlmread() 1

2 1. Definition A file I/O function is considered HIGH-LEVEL if in ONE SINGLE COMMAND, it 1. Opens the file 2. Grabs the data 3. Stores it in variables 4. Closes the file High-level functions can be used to: 1. Load data from external sources (INPUT) 2. Save data back to a file (OUTPUT) 2

3 2. Wait.wait.wait… Before you decide if using a high-level function is possible, evaluate the following: 1. What type of file is it? (excel, text, jpg..) 2. Find the organization overall (data in rows, or data in columns, data placed all over the place…) 3. Recognize the delimiters (space, tabs, new lines, -, :, / any specific symbol. What makes it obvious it is a new column? What makes it obvious it is a new row?) 4. Recognize the data types (all numerical? all strings? Or combination of both) 3

4 2. Can High-Level be used? 4

5 2. Can High-Level be used? cont. “Neatly Organized” 1. Rows and Columns are “identifiable” 2. No “holes” anywhere 3. Always the same patterns per line 4. There is no mixes of delimiters (commas, spaces, tabs, dash.. ) 5

6 Questions Can these files be read using a high-level function? 6

7 Answers Can these files be read using a high-level function? 7 Yes Mixes of – and spaces. Mixes of, and spaces. Yes. White space only. Decimals are ok.

8 Whatever you do, the input files (.txt,.xls,.xlsx,.m) should all be in the same directory for function calls to work! 8

9 2. Can High-Level be used? 9

10 3. xlsread() F1, help. The most general form is: Other calls possible: 10

11 3. xlsread() F1, help. The most general form is: Other calls possible: 11 How do we work with all this?

12 Example: xlsread() Name who has the highest grade! %load data from file [values text raw] = xlsread('grades.xlsx'); %find the position of the maximum grade %find whose name is associated with that position 12 Test. See results!

13 Results 13

14 Results To find the highest grade, work on the array values. To find the name, either use text or raw ! 14

15 Example: xlsread() Name who has the highest grade! %load data from file [values text raw] = xlsread('grades.xlsx'); %find the position of the maximum grade [trash row]= max(values(:,2)); %find whose name is associated with that position name = text{row+1,1}; %+1 due to headers fprintf('%s got the highest grade\n', name) 15

16 Example: xlsread() Name who has the highest grade! %load data from file [values text raw] = xlsread('grades.xlsx'); %find the position of the maximum grade [trash row]= max(values(:,2)); %find whose name is associated with that position name = text{row+1,1}; %+1 due to headers fprintf('%s got the highest grade\n', name) 16

17 3. xlsread(), cont. txt = 19 78 22 83 98 99 21 56 23 89 19 51 17 nbs = 'Name' 'Age' 'Grade' 'Fred' '' '' 'joe' '' '' 'SaLLy' '' '' 'CharliE' '' '' 'mary' '' '' 'Ann' '' '' raw = 'Name' 'Age' 'Grade' 'Fred' [ 19] [ 78] 'joe' [ 22] [ 83] 'SaLLy' [ 98] [ 99] 'CharliE' [ 21] [ 56] 'mary' [ 23] [ 89] 'Ann' [ 19] [ 51] >> [txt nbs raw] = xlsread('grades.xlsx‘)   Variable names are up to the programmer. If named badly by mistake… BAD. The order of the return values is important.

18 3. xlsread(), cont. Simply omit the 2 nd and 3 rd return value to collect only numerical values. values = xlsread(‘grades.xlsx’); If a project needs all the data together, collect the 1 st and 2 nd return values into a dummy variable. [trash trash data] = xlsread(‘grades.xlsx’); If there happens to be ‘holes’ in the spreadsheet, Matlab fills it with a NaN value (not a number). The function isnan() can help determine where those ‘holes’ are. 18

19 3. xlsread(), cont. This function will not work under Citrix, since Excel is not installed on Citrix. Come to the lab to do labs and homework. 19 

20 4. xlswrite() Arrays can also be written to excel sheets: xlswrite(,,, ) The and arguments are optional. 20 clc clear %create phony data table = rand(5,3)*100; %print to excel xlswrite('testingTesting.xls',table)

21 2. Can High-Level be used? 21 NUMBERS ONLY.

22 5. Using Delimiters Rows are delimited by the new line character (enter key, invisible to the human eye). Columns are delimited by the same delimiter each time: Default delimiters: commas, and white space Other delimiters: any other symbol : - / F1 = help 22

23 5. Using Delimiters, cont. Delimiter: white space (spaces, or tabs) 23 Missing data is filled by zeros.

24 5. Using Delimiters, cont. Delimiter: commas Added feasibility to ‘skip’ columns 24

25 5. Using Delimiters, cont. Delimiter: other than the defaults 25 Specify the delimiter as the 2 nd argument.

26 5. Using Delimiters, cont. Delimiter: other than the defaults 26 Specify the delimiter as the 2 nd argument.

27 5. Using Delimiters, cont. "Neatly Organized" is important. 27 BAD RESULTS. Two delimiters (spaces and colons) in the file. Matlab is lost.

28 Wrapping Up One command opens, loads, and closes the file. Before anything, look in the file, and decide whether a high-level function is appropriate xlsread(), dlmread() are common. There are many other high-level functions. The variables are automatically created by MATLAB. Sometimes as regular array [ ] Other times as cell array{ } Use knowledge from previous chapter to analyze the data in the arrays. FOR loops, A(position), A(row,col), A{row,col}, max(arrayName), mean(arrayName), sort(..), slicing, deleting, augmenting… 28


Download ppt "File I/O High-Level Functions 1. Definition 2. Is a High-Level function appropriate? 3. xlsread() 4. dlmread() 1."

Similar presentations


Ads by Google