CIS 601 MATLAB First Impressions. MATLAB This introduction will give Some basic ideas Main advantages and drawbacks compared to other languages.

Slides:



Advertisements
Similar presentations
Introduction to MATLAB The language of Technical Computing.
Advertisements

Introduction to Matlab Workshop Matthew Johnson, Economics October 17, /13/20151.
Programming Paradigms and languages
Chapter 8 and 9 Review: Logical Functions and Control Structures Introduction to MATLAB 7 Engineering 161.
Data Analytics and Dynamic Languages Lee E. Edlefsen, Ph.D. VP of Engineering 1.
Introduction to a Programming Environment
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Guide To UNIX Using Linux Third Edition
Matlab Intro. Outline Matlab introduction Matlab elements Types Variables Matrices.
Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.
Language Issues Misunderstimated? Sublimable? Hopefuller? "I know how hard it is for you to put food on your family.” "I know the human being and fish.
Digital Image Processing Lecture3: Introduction to MATLAB.
CS102 Introduction to Computer Programming
1 Chapter One A First Program Using C#. 2 Objectives Learn about programming tasks Learn object-oriented programming concepts Learn about the C# programming.
A First Program Using C#
Introduction to MATLAB adapted from Dr. Rolf Lakaemper.
Introduction to MATLAB Session 1 Prepared By: Dina El Kholy Ahmed Dalal Statistics Course – Biomedical Department -year 3.
You can make this in matlab!. Matlab Introduction and Matrices.
Introduction to M ATLAB EE 100 – EE Dept. - JUST.
Copyright © 2012 Pearson Education, Inc. Chapter 1: Introduction to Computers and Programming 1.
Lists in Python.
Eng Advanced Marine Vehicles Todays agenda: Lab tomorrow at 2pm (structures lab) ‏ Advanced Marine Party Introduction to Matlab.
REVIEW 2 Exam History of Computers 1. CPU stands for _______________________. a. Counter productive units b. Central processing unit c. Copper.
PRESENTED BY: RAJKRISHNADEEPAK.VUYYURU SWAMYCHANDAN.DONDAPATI VINESHKUMARREDDY.LANKA RAJSEKHARTIRUMALA KANDURI ALAN.
Computational Methods of Scientific Programming Lecturers Thomas A Herring, Room A, Chris Hill, Room ,
Eng Ship Structures 1 Introduction to Matlab.
1 Computer Programming (ECGD2102 ) Using MATLAB Instructor: Eng. Eman Al.Swaity Lecture (1): Introduction.
Matlab Basics Tutorial. Vectors Let's start off by creating something simple, like a vector. Enter each element of the vector (separated by a space) between.
Copyright © 2006 The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1 Chapter 2.
Programming with Java © 2002 The McGraw-Hill Companies, Inc. All rights reserved. 1 McGraw-Hill/Irwin Chapter 9 Arrays.
Vectors and Matrices In MATLAB a vector can be defined as row vector or as a column vector. A vector of length n can be visualized as matrix of size 1xn.
Getting Started with MATLAB 1. Fundamentals of MATLAB 2. Different Windows of MATLAB 1.
Matlab 14.html Cost: $100 Available in labs on Windows and Unix machines.
CLIP Command Line InterPreter for a subset of C++.
Introduction to MATLAB adapted from Dr. Rolf Lakaemper.
C++ Lecture 1 Friday, 4 July History of C++ l Built on top of C l C was developed in early 70s from B and BCPL l Object oriented programming paradigm.
Chapter 6 Review: User Defined Functions Introduction to MATLAB 7 Engineering 161.
Standard Template Library The Standard Template Library was recently added to standard C++. –The STL contains generic template classes. –The STL permits.
Matlab Tutorial (material available at 1 Dr. Jim Martin Associate Professor School of Computing.
BOĞAZİÇİ UNIVERSITY DEPARTMENT OF MANAGEMENT INFORMATION SYSTEMS MATLAB AS A DATA MINING ENVIRONMENT.
CIS 595 MATLAB First Impressions. MATLAB This introduction will give Some basic ideas Main advantages and drawbacks compared to other languages.
A (VERY) SHORT INTRODUCTION TO MATLAB J.A. MARR George Mason University School of Physics, Astronomy and Computational Sciences.
CIS 601 Fall 2003 Introduction to MATLAB Longin Jan Latecki Based on the lectures of Rolf Lakaemper and David Young.
STL CSSE 250 Susan Reeder. What is the STL? Standard Template Library Standard C++ Library is an extensible framework which contains components for Language.
Introduction to Matlab Patrice Koehl Department of Biological Sciences National University of Singapore
NET 222: COMMUNICATIONS AND NETWORKS FUNDAMENTALS ( NET 222: COMMUNICATIONS AND NETWORKS FUNDAMENTALS (PRACTICAL PART) Tutorial 2 : Matlab - Getting Started.
Math 252: Math Modeling Eli Goldwyn Introduction to MATLAB.
Ada, Scheme, R Emory Wingard. Ada History Department of Defense in search of high level language around Requirements drafted for the language.
CIS 595 MATLAB First Impressions. MATLAB This introduction will give Some basic ideas Main advantages and drawbacks compared to other languages.
Matlab Tutorial (material available at 1 Dr. Jim Martin Associate Professor School of Computing.
Chapter 1: Introduction to Computers and Programming.
Introduction to Algorithm. What is Algorithm? an algorithm is any well-defined computational procedure that takes some value, or set of values, as input.
Matlab.
Introduction to Matlab
Lecture: MATLAB Chapter 1 Introduction
Outline Matlab tutorial How to start and exit Matlab Matlab basics.
INTRODUCTION TO BASIC MATLAB
MATLAB DENC 2533 ECADD LAB 9.
Matlab Workshop 9/22/2018.
Introduction to MATLAB
Simulation And Modeling
Digital Image Processing using MATLAB
Part I – Matlab Basics.
Use of Mathematics using Technology (Maltlab)
a = imread(‘picture.jpg’); imshow(a);
HYPERTEXT PREPROCESSOR BY : UMA KAKKAR
CSE 307 Basics of Image Processing
Matlab Basic Dr. Imtiaz Hussain
Simulation And Modeling
Introduction to Matlab
Presentation transcript:

CIS 601 MATLAB First Impressions

MATLAB This introduction will give Some basic ideas Main advantages and drawbacks compared to other languages

MATLAB What Is MATLAB? MATLAB (MATrix LABoratory) high-performance language for technical computing computation, visualization, and programming in an easy-to- use environment Typical uses include: Math and computation Algorithm development Modelling, simulation, and prototyping Data analysis, exploration, and visualization Scientific and engineering graphics Application development, including Graphical User Interface building

MATLAB Matlab is an INTERPRETED language …with all the advantages and drawbacks ! …there is a Matlab Compiler, but it’s not worth too much in terms of speed Matlab takes care of the usual programming overhead, e.g. memory allocation, datatype conversion, parameters by value/reference … with all the advantages and drawbacks ! Matlab is NOT object oriented, although there are some attempts to extend it

MATLAB Matlab is able to cooperate with other languages, e.g. C, C++ JAVA Fortran

Why MATLAB A good choice for vision program development because: Easy to do very rapid prototyping Easy to learn, well documented A good library of image processing functions Excellent display capabilities Widely used for teaching and research in universities and industry Another language to impress your boss with !

Why not MATLAB Has some drawbacks: Slow for some kinds of processes Not geared to the web Not designed for large-scale system development

MATLAB Components MATLAB consists of: The MATLAB language a high-level matrix/array language with control flow statements, functions, data structures, input/output, and object-oriented programming features. The MATLAB working environment the set of tools and facilities that you work with as the MATLAB user or programmer, including tools for developing, managing, debugging, and profiling Handle Graphics the MATLAB graphics system. It includes high-level commands for two- dimensional and three-dimensional data visualization, image processing, animation, and presentation graphics. …(cont’d)

MATLAB Components … The MATLAB function library. a vast collection of computational algorithms ranging from elementary functions like sum, sine, cosine, and complex arithmetic, to more sophisticated functions like matrix inverse, matrix eigenvalues, Bessel functions, and fast Fourier transforms as well as special image processing related functions The MATLAB Application Program Interface (API) a library that allows you to write C and Fortran programs that interact with MATLAB. It include facilities for calling routines from MATLAB (dynamic linking), calling MATLAB as a computational engine, and for reading and writing MAT-files.

MATLAB Some facts for a first impression Everything in MATLAB is a matrix ! again: MATLAB is an interpreted language, no compilation needed (but possible) again: MATLAB does not need any variable declarations, no dimension statements, has no packaging, no storage allocation, no pointers Programs can be run step by step, with full access to all variables, functions etc.

What does Matlab code look like? A simple example: a = 1 while length(a) < 10 a = [0 a] + [a 0] end What’s the output ?

What does Matlab code look like? A simple example: a = 1 while length(a) < 10 a = [0 a] + [a 0] end which prints out Pascal’s triangle: (with “a=” before each line).

What does Matlab code look like? Another simple example : t = 0:pi/100:2*pi; y = sin(t); plot(t,y)

What does Matlab code look like? Another simple example: t = 0:pi/100:2*pi; y = sin(t); plot(t,y) Remember: EVERYTHING IN MATLAB IS A MATRIX ! creates 1 x 200 Matrix Argument and result: 1 x 200 Matrix

Matrices !

Rows and columns are always numbered starting at 1 Matlab matrices are of various types to hold different kinds of data (usually floats or integers) A single number is really a 1 x 1 matrix in Matlab! Matlab variables are not given a type, and do not need to be declared Any matrix can be assigned to any variable

Matrices Building matrices with [ ]: A = [2 7 4] A = [2; 7; 4] A = [2 7 4; 3 8 9] B = [ A A ] ?

Matrices Building matrices with [ ]: A = [2 7 4] A = [2; 7; 4] A = [2 7 4; 3 8 9] B = [ A A ]

Matrices

Some operators must be handled with care: A = [1 2 ; 4 5] B = A * A prints B = A.* A prints Element by element multiplication

Submatrices A matrix can be indexed using another matrix, to produce a subset of its elements: a = [ ] b = [3 5 6] c = a(b):

Submatrices To get a subsection of a matrix, we can produce the index matrix with the colon operator: a(2:5) prints ans = This works in 2-D as well, e.g. c(2:3, 1:2) produces a 2 x 2 submatrix. The rows and columns of the submatrix are renumbered.

loops ‘for’ loops in MATLAB iterate over matrix elements: b = 0 for i = [ ] b = b + i; end Result:29 Note: THIS IS NOT THE WAY YOU SHOULD PROGRAM A SUM, SINCE LOOPS ARE SLOW IN MATLAB !

loops ‘for’ loops in MATLAB iterate over matrix elements: b = 0 for i = [ ] b = b + i; end Result:29 The MATLAB way to write that program would have been: b = sum([ ]); Avoid loops if possible !

% Example for runtime difference of loops and built in functions a=rand(10000,1000); % Matrix with (1e7) elements tic theSum=0; for i=1:size(a,1) for j=1:size(a,2) theSum = theSum + a(i,j); end toc fprintf('result of loop: %f\n',theSum); tic theSum=sum(a(:)); toc fprintf('result of loop: %f\n',theSum); Elapsed time is seconds. result of loop: Elapsed time is seconds. result of loop: loops Here: Speed up factor 2.6

loops The typical ‘for’ loop looks like: for i = 1:6 … end Which is the same as: for i = [ ] … end

loops Or a bit more sophisticated: for i = 1:2:7 … end Which is the same as: for i = [ ] … end

loops Once again: AVOID LOOPS

Avoiding loops How to avoid loops: Task: count the elements being greater than 5 in the following matrix M:

The non-MATLAB way: counter=0 For rows=1:2 For columns=1:6 if M(rows,columns) > 5 inc counter end Avoiding loops

The MATLAB way: T = M > 5; Count = sum (T(:)) ; Or shorter: Count = sum(M(:) > 5); Avoiding loops

Another example, showing the mighty INDEXING possibilities : Task: eliminate the whitespaces in the following vector M Avoiding loops ABCDABCD

i = find (M ~= ‘ ‘); % result: i=[ ] M = M(i); Or shorter: M=M(find(M ~= ‘ ‘); Avoiding loops ABCDABCD

survivingSubSegs = pointDensity >= minDensity; diffSubSegs = diff([0 survivingSubSegs 0]); startSeg = find(diffSubSegs == 1); endSeg = find(diffSubSegs == -1) - 1; Avoiding loops An example how to work without loops, taken from the EMSF algorithm for line detection What’s the purpose ?

Images So why MATLAB and IMAGE PROCESSING ?

Images Images can be treated as matrices !

Images Loading an image: a = imread(‘picture.jpg’); imshow(a);

Images Image (=matrix) size: size(a): R G B

Images Color image: 3D Matrix of RGB planes

Images Show RED plane: a(:,:,2:3) = 0; imshow(a);

Images Show GREEN plane: a(:,:,[1 3]) = 0; imshow(a);

Images Show BLUE plane: a(:,:,1:2) = 0; imshow(a);

Images Advanced: Shuffling columns rn = rand(1,512); [rn1,i] = sort(rn); b = a(:,i,:); imshow(b);

Images

By the way… MATLAB can also handle Movies 3D objects …

Conclusion MATLAB is a mighty tool to manipulate matrices Images can be treated as matrices MATLAB is a mighty tool to manipulate images

In my opinion… MATLAB should be used to code software prototypes Research is mostly about prototypes, not runtime-optimized software MATLAB should be used in research

In my opinion… MATLAB prototypes must be re- coded (e.g. in C++) if there’s need for speed Algorithm development time is drastically shorter in MATLAB

Conclusion CONCLUSION: Use MATLAB

How to go on MATLAB is exceptionally well documented: Opening help/MATLAB help/Getting started help/MATLAB help/Using MATLAB Offers help to the environment, programming concepts, function libraries etc.

How to go on The ‘help ’ command shows the first comment- lines of the function given by the m- file. ‘Doc’ does the same, but nicer (html-style, graphics, examples)

How to go on The TAB key automatically extends commands given. This is sometimes helpful if the function name should be obvious: Task: sort the rows of the matrix A Idea: there could be a function named ‘sortXXXX’ Type: ‘sort + TAB’ Result: sort,sortcellchar,sorted,sortiv,sortrows, sortrowsc

How to go on Result: sort,sortcellchar,sorted,sortiv,sortrows, sortrowsc This looks promising ! ‘help sortrows’ will exclude doubt: SORTROWS Sort rows in ascending order. Y = SORTROWS(X) sorts the rows of the matrix X in ascending order as a group. X is a 2-D numeric or char matrix. For a char matrix containing strings … (+usage, examples etc.)

How to go on Another helpful command is ‘lookfor’: ‘lookfor ’ looks for the string in all first comments lines (the ones shown by the ‘help’ command) of ALL functions, returning functions with a hit. e.g. ‘lookfor sort’:

How to go on e.g. ‘lookfor sort’: bestof.m: %BESTOF(index,names,M,n, ) returns the sorted comparison values of polygon(index) + filenames CPLXPAIR Sort numbers into complex conjugate pairs. ISSORTED True for sorted vector. SORT Sort in ascending order. SORTROWS Sort rows in ascending order. RTMDLSORTFLDS is a RTW support function. DSORT Sort complex discrete eigenvalues in descending order. ESORT Sort complex continuous eigenvalues in descending order. DSPBLKSORT DSP Blockset sort block helper function. UISORTDATA GUI for sorting matrices by row XREGLVSORTER Function to sort items in listview sortiv.m: % function [out,err] = sortiv(in,sortflg,nored,epp) EIGFUN Function to return sorted eigenvalues (used in GOALDEMO). V2SORT Sorts two vectors and then removes missing elements. …

How to go on Note: …a creative search using the right topics with ‘lookfor’ can save a lot of time. MATLAB comes with mostly all basic things you can think of. Search before you program ! … a Google search ‘MATLAB +topic’ is sometimed an unbelievably satisfying source of time-saving program collections.

How to go on Now: browse the documentation ! read sample codes ! simply browse the list of functions (doc) Try and type some lines, use the graphics !