SIO 209 Introduction to MATLAB (section 944237), Fall 2018 (1 unit S/U)
syllabus & course information
Instructor: Sarah Giddings, sarahgid at ucsd.edu
Class times: Mon 17 – Wed 19 Sept 09:00-12:00 (with breaks!)
Location: Eckart Computer Lab 255
Office hours: 17 Sept 12:00-14:00, 18-19 Sept 14:00-16:00 MESOM 365, or email me to set up an appointment
This course will provide a hands-on introduction to MATLAB. No prior experience is necessary. The course will cover variables, plotting, scripts, matrices and other ways to store data including NetCDF, loops, and an introduction to more advanced techniques. While the focus is MATLAB, a brief comparison to other programming languages will be included and several of the coding approaches and best practices are applicable to other languages. Course material including notes, homework, and .mat files will be posted here as the course progresses.
course schedule and links to materials:
Workspace, startup, basic math, matrices & arrays, element-by-element vs. matrix math, symbolic algebra, characters & strings, scripts, best practices, basic plotting, saving figures, saving & loading data, loading and saving .txt or ascii files.
Basic statistics, basic fitting, MATLAB dates, indexing, 2D plotting, other figure properties, get and set, mapping.
Scatterplots, functions, vectorizing code for efficiency, structures, cell arrays, Native MATLAB NetCDF, SNCtools NetCDF.
You do not need any background with MATLAB or computer programming. Programming is learned best by practice, so in order to follow along and do the homework, you will need to have access to a computer that runs MATLAB. The class is being held in the Eckart Computer lab, so most students can use the computers in the room which will have MATLAB installed. It is also highly encouraged that you bring your own laptop to class if you have one. UCSD now has a campus-wide MATLAB license, instructions for students are here. Another option is to try the virtual lab. Worst case scenario, a student version is available at the UCSD bookstore ($100).
** Before coming to class on the first day:
- download MATLAB and test that it works
- download notes for the first day of class
- download files provided
What if I have more or less experience than my classmates?
It is important to note that because this course is open to all levels, the level of difficulty will vary by student. In order to make the course valuable for a variety of experience levels, two sets of homework aimed for different levels (no prior experience and some-moderate experience) will be available as well as extensive office hours. I strongly encourage students to ask questions during class, slow me down if need be, and repeat some of the coding at home. Finally, a variety of references and tutorials are listed below including some free on-line learning tutorials for a range of experience levels.
credit & homework:
To enroll in the class, search for the section ID #944237 here. **You can only take this class credit/no credit, so please make sure you are appropriately enrolled.** To get course credit, you must attend all 3 days of class and complete the homework. Homework will not be graded, it will be self-check. Again, you learn programming best by doing!
There are many textbooks covering MATLAB, so you might check out the selection at the UCSD bookstore. Here are a couple of suggestions:
- MATLAB, Third Edition: A Practical Introduction to Programming and Problem Solving by Stormy Attaway (bookstore link) (Amazon link). This one is well reviewed and recent.
- Physical Oceanography: A Mathematical Introduction with MATLAB by Reza Malek-Madani (Amazon link). This book seems useful for those interested in using MATLAB to solve numerical problems in physical oceanography. For those of you in different fields, look on-line, there are great books for applications to engineering, numerical methods, biology, etc.
- Introduction to Programming with MATLAB for Scientists and Engineers, second edition, by William W. Broenkow
- Mathworks (the company who developed MATLAB) has online tutorials as well as a detailed users manual is available.
- Regular Google searches work pretty well too as there is a very large user community and on-line responses to questions as well as application specific code sharing. Some code you will find through individual websites (e.g., TEOS-10) others you can find on the Matlab code file exchange.
Matlab help files (online and offline)
All of the Matlab help files are available within the program and online help. For functions, (e.g. the “plot” function), you can use the help command: >>help plot OR >>doc plot.