# Matlab Training Session 5: Importing Data - PowerPoint PPT Presentation

PPT – Matlab Training Session 5: Importing Data PowerPoint presentation | free to view - id: 10239d-YzY5Z

The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
Title:

## Matlab Training Session 5: Importing Data

Description:

### fid = fopen( filepath') absolute directory filename ... fscanf(fid,format,size) Format ... Need to set file pointer to beginning using rewind(fid) ... – PowerPoint PPT presentation

Number of Views:1287
Avg rating:3.0/5.0
Slides: 26
Provided by: DML92
Category:
Tags:
Transcript and Presenter's Notes

Title: Matlab Training Session 5: Importing Data

1
Matlab Training Session 5 Importing Data
2
• Course Outline
• Weeks
• Introduction to Matlab and its Interface (Sept.
27 2005)
• Fundamentals (Operators)
• Fundamentals (Flow)
• Importing Data
• Functions and M-Files
• Plotting (2D and 3D)
• Statistical Tools in Matlab
• Analysis and Data Structures
• Classes on ? Nov 1st ?, 8th and 15th have been
cancelled for Society for Neuroscience (SFN) 35th
annual meeting.
• Course Website
• http//www.queensu.ca/neurosci/Matlab Training
Sessions.htm

3
• Week 5 Lecture Outline
• Importing Data
• A. Week 4 Review
• B. Simple Import
• C. Handling Files
• D. Mini-Project

4
Functions in Matlab
• In Matlab, each function is a .m file
• It is good protocol to name your .m file the same
as your function name, i.e. funcname.m
• function outargsfuncname(inargs)

Function
input
output
5
Mini-Project
• Raising any number of numbers to the nth power
• Inputs
• A vector of numbers to be raised (N1Nm)
• A vector of powers (P1Pm)
• Outputs
• A vector of raised values (N1P1  NmPm)
• An error flag 1 if error in calculation, 0 if
successful
• Caveats
• If only one input is provided, the function
should square each entry, so output (N12Nm2)
and error flag is 0
• If the length of N and P are not the same, this
is an error, return anything in the output vector
and a 1 in the error flag
• Make sure to comment and document the function

6
Solution
Complex function y, e raise(x,n) y
ones(1,length(x)) if nargin 1 y e
raise(x,2ones(1,length(x))) return elseif
nargin 2 if(length(x)length(n))
y NaN e 1 return end
for(i1length(x)) for(j1n(i))
y(i) y(i)x(i) end end e
0 return end
Simple function y, e raise(x,n) if nargin
1 y e x.2 return elseif nargin
2 if(length(x)length(n)) y NaN
e 1 return end y
x.n e 0 end
7
Importing Data
• Basic issue
• How do we get data from other sources into Matlab
so that we can play with it?
• Other Issues
• Where do we get the data?
• What types of data can we import
• Easily or Not

8
• Command opens and imports data from a standard
ASCII file into a matlab variable
• Restrictions
• Data must be constantly sized
• Data must be ASCII
• No other characters

9
• Consider the simple file below
• Create in notepad and save as test1.txt and
text2.txt
• In matlab, set the path to the correct place (ie.
where the file is) and type load(test1.txt)

1 2 3 4 5 2 4 8 16 32
test1
10
• Now the file is no longer simple because not
every row has the same amount of characters
• Create in notepad and save as test2.txt and
text2.txt
• Error!

1 2 3 4 5 4 8 16 32
test2
11
• Now type in the same thing from test1.txt into
Excel and save the workbook as test1.xls
• What happens?
• Forcing the issue with Excel data

test1
1 2 3 4 5 2 4 8 16 32
12
• Works for simple and unstructured code
• Powerful and easy to use but limited
• Will likely force you to manually handle
simplifying data which is prone to error
• More complex functions are more flexible

13
File Handling
• f functions are associated with file opening,
• Basic Functions of Interest for opening and
• fopen
• fclose
• fseek/ftell/frewind
• fscanf
• fgetl

14
fopen
• Opens a file object in matlab that points to the
file of interest
• fid fopen(filepath)
• absolute directory filename
• If file of interest it C\Andrew\Project_1\file.da
t
• fid fopen(C\Andrew\Project_1\file.dat)
• relative path filename
• If your matlab path is set to c\Andrew\Project_1
• fid fopen(file.dat)
• fid is an integer that represents the file
• Can open multiple files and matlab will assign
unique fids

15
fclose
• When you are done with a file, it is a good idea
to close it especially if you are opening many
files
• fclose(fid)

16
What is a File?
• A specific organization of data
• In matlab it is identified with a fid
• Location is specified with a pointer that can be
moved around

fid
file_name
Pointer
17
Moving the Pointer
• We already know how to assign a fid (fopen)
• To find where the file is pointing
• x ftell(fid)
• To point somewhere else
• fseek(fid,offset,origin)
• Move pointer in file fid by offset relative to
origin
• Origin can be beginning, current, end of file
• To point to the beginning
• frewind(fid)

18
Getting Data
• Why move the pointer around?
• Get somewhere in the file from where you want
data
• fscanf(fid,format,size)
• Format
• You have to tell matlab the type of data it
should be expecting in the text file so that it
can convert it
• d, f, c
• Size
• You can specify how to organize the imported data
• m,n import the data as m by n, n can be
infinite
• Be careful because matlab will mangle your data
and not tell you

19
Lets Try It
• Open text1.txt using the fopen command
• Remember to save the fid, we will need it
• Create a variable with the data of text1.txt
• Now create another variable y with the data of
text1.txt in it by using fscanf (do not simply
copy x)
• What happens here?
• Need to set file pointer to beginning using
rewind(fid)
• Now use the size option to import the data with 5
rows and 2 columns
• Try the same thing with test2.txt
• It works and fills in the blanks. This is
powerful but dangerous

20
Getting Data
• fgetl returns the next line of the file as a
character array
• You may need to convert these to numbers

gtgt fid1 fopen(test1.txt) gtgt a_str
fgetl(fid1) a_str 1 2 gtgt a_num
str2num(a_str) a_num 1 2
21
Realistic File
• A realistic file of data will have header
information, labeled columns and other
information embedded within it.
• See PDXtemp.dat
• Option 1 Manually go through deleting this
information and import using load of fopen
commands.
• Option 2 Have matlab delete and format available
data on the fly

22
Realistic File
• Powerful function textread can be used to input
almost any text file
• Handles
• Opening the file
• Accepting Column Labels
• Will work for most applications

23
Summary
• Lots of options to load files
• fscanf for complex
• Also saving Excel sheets as tad delimitted

24
Mini-Project
• Using the textread function, import the full data
located in PDXtemp.dat with the stated names and
correct data types
• Take the resulting temperatures in Fahrenheit and
convert to Celsius
• Make use of Matlab help to learn about and
• Deg_F 9/5Deg_C 32

25
Getting Help
• Help and Documentation
• Digital
• Accessible Help from the Matlab Start Menu