This document provides contact information and revision history for the MATLAB Primer. It lists ways to contact MathWorks for sales, support, and community help. It also provides the copyright information and lists revisions made from 1996 to 2014. The document contains 23 printing revisions and online revisions for MATLAB releases from versions 5 through 8.4 (R2014b).
The document provides information about MATLAB, including how to contact MathWorks for sales, support, or to access the user community. It lists the company address and provides the copyright and revision history of the MATLAB Primer document.
This document provides information about MATLAB, including how to contact The MathWorks for sales, support, or to access the user community. It describes the copyright and trademark policies for MATLAB. The revision history shows that this primer has been updated over time to correspond with new MATLAB releases since 1996.
This document provides contact information for The MathWorks, including their website, newsgroup, phone number, fax, mailing address, and worldwide office locations. It also lists MATLAB as a registered trademark of The MathWorks along with other product names. The document history shows revisions made in June 2004, October 2004, and March 2005.
This document provides an introduction to MATLAB for engineering students. It covers basic MATLAB functionality like performing calculations, plotting graphs, generating matrices, and programming with M-files. The document is divided into multiple chapters that teach essential MATLAB skills such as its interface, basic commands, mathematical functions, plotting, matrix operations, solving equations, programming constructs, debugging, and more. It serves as a tutorial for new MATLAB users to learn its main features.
This document provides an introduction to MATLAB for engineering students. It covers basic MATLAB functionality like performing calculations, plotting graphs, generating matrices, and programming with M-files. The document is divided into multiple chapters that teach essential MATLAB skills such as its interface, basic commands, mathematical functions, plotting, matrix operations, solving equations, programming constructs, debugging scripts, and more. It serves as a tutorial for new MATLAB users to learn its main features.
This document provides an introduction to MATLAB for engineering students. It covers basic MATLAB functionality like performing calculations, plotting graphs, generating matrices, and programming with M-files. The document is divided into multiple chapters that teach essential MATLAB skills such as basic operations, mathematical functions, plotting, matrix generation and manipulation, solving linear equations, programming with scripts and functions, control flow, and debugging. It includes examples throughout and exercises at the end of each chapter.
This document provides an introduction to MATLAB for engineering students. It covers basic MATLAB functionality like arithmetic, variables, plotting, and matrices. It also introduces programming concepts in MATLAB like scripts, functions, control flow, and debugging. The document contains 6 chapters that progress from basic use to more advanced programming topics. Each chapter includes examples and exercises for students to practice the concepts.
This document provides contact information and revision history for the MATLAB Primer. It lists ways to contact MathWorks for sales, support, and community help. It also provides the copyright information and lists revisions made from 1996 to 2014. The document contains 23 printing revisions and online revisions for MATLAB releases from versions 5 through 8.4 (R2014b).
The document provides information about MATLAB, including how to contact MathWorks for sales, support, or to access the user community. It lists the company address and provides the copyright and revision history of the MATLAB Primer document.
This document provides information about MATLAB, including how to contact The MathWorks for sales, support, or to access the user community. It describes the copyright and trademark policies for MATLAB. The revision history shows that this primer has been updated over time to correspond with new MATLAB releases since 1996.
This document provides contact information for The MathWorks, including their website, newsgroup, phone number, fax, mailing address, and worldwide office locations. It also lists MATLAB as a registered trademark of The MathWorks along with other product names. The document history shows revisions made in June 2004, October 2004, and March 2005.
This document provides an introduction to MATLAB for engineering students. It covers basic MATLAB functionality like performing calculations, plotting graphs, generating matrices, and programming with M-files. The document is divided into multiple chapters that teach essential MATLAB skills such as its interface, basic commands, mathematical functions, plotting, matrix operations, solving equations, programming constructs, debugging, and more. It serves as a tutorial for new MATLAB users to learn its main features.
This document provides an introduction to MATLAB for engineering students. It covers basic MATLAB functionality like performing calculations, plotting graphs, generating matrices, and programming with M-files. The document is divided into multiple chapters that teach essential MATLAB skills such as its interface, basic commands, mathematical functions, plotting, matrix operations, solving equations, programming constructs, debugging scripts, and more. It serves as a tutorial for new MATLAB users to learn its main features.
This document provides an introduction to MATLAB for engineering students. It covers basic MATLAB functionality like performing calculations, plotting graphs, generating matrices, and programming with M-files. The document is divided into multiple chapters that teach essential MATLAB skills such as basic operations, mathematical functions, plotting, matrix generation and manipulation, solving linear equations, programming with scripts and functions, control flow, and debugging. It includes examples throughout and exercises at the end of each chapter.
This document provides an introduction to MATLAB for engineering students. It covers basic MATLAB functionality like arithmetic, variables, plotting, and matrices. It also introduces programming concepts in MATLAB like scripts, functions, control flow, and debugging. The document contains 6 chapters that progress from basic use to more advanced programming topics. Each chapter includes examples and exercises for students to practice the concepts.
This document provides an introduction to the C++ programming language. It discusses the history and evolution of C++. The document outlines some key differences between C and C++, such as namespaces, references, and classes. It also introduces several important C++ concepts, like object-oriented programming, the string data type, input/output streams, and classes. The document serves as a textbook for C++ programming courses taught at the University of Groningen.
This document is an introduction to the PDF version of an online book about programming in Java. It provides some basic information about the book, including that it is available online at a given URL, the PDF does not include source code or solutions but provides links to those resources, and each section has a link to the online version. It also covers licensing details, noting that the work can be distributed unmodified for non-commercial purposes under a Creative Commons license.
This document is an introduction to an online textbook for learning to program in Java. It provides an overview of the textbook's contents and structure. The textbook is available both as a PDF and on the web. It covers topics such as machine language, object-oriented programming, user interfaces, and the internet as they relate to Java programming. The textbook is released under a Creative Commons license that allows for free distribution with modifications.
This document provides an overview of the Maxima computer algebra system, including its history and development from Macsyma. It describes several interfaces for interacting with Maxima, such as the terminal interface, Emacs interface, and Xmaxima graphical interface. It also covers basic functions and operations in Maxima like trigonometric functions, differentiation, integration, and solving ordinary differential equations. The document consists of multiple parts that describe additional packages, installing Maxima, resources and troubleshooting.
This document provides lecture notes for a C++ course. It notes that the document is a work in progress and needs polishing. It describes the tools used for the course, including GNU/Linux, GNU C++ compiler, emacs text editor, and UNIX commands. It also provides information on copyright and allows for free redistribution of the document without modification. The document then outlines the various chapters that will be covered in the course, including memory and CPU concepts, shell and C++ basics, expressions and functions, arrays and pointers, debugging, algorithms and sorting.
This document is an introduction to programming using Java version 5.0 from December 2006. It was written by David J. Eck of Hobart and William Smith Colleges. The document covers Java programming concepts such as machine language, asynchronous events, the Java virtual machine, object-oriented programming, and the modern user interface. It is licensed under the Creative Commons Attribution-Share Alike license and its web site is provided. The document contains chapters and exercises to teach Java programming.
This document provides contact and support information for The MathWorks' Communications System Toolbox. It lists the toolbox's user guide revision history and table of contents. The guide covers topics like input/output, data and signal management, adaptive equalization examples, and system design techniques for communications systems.
This document contains lecture notes for a computer programming course taught at Universiti Tun Hussein Onn Malaysia. It covers topics like the structure of C programs, operators and expressions, selection statements, and repetition. The notes were written by Winardi Sani and several tutors are listed. The document is organized into chapters with sections covering specific programming concepts.
This document contains lecture notes for a Computer Programming course taught at Universiti Tun Hussein Onn Malaysia. It covers topics including the structure of C programs, operators and expressions, selection statements, and repetition. The notes were written by Winardi Sani and include tutorials by Imran bin Razali, Muhamad Zaini bin Yunos, Sharifah Z.R. Bt Syed Ahmad, and Faizul Amin Anuar.
This document provides an introduction to using R, an open-source programming language and software environment for statistical analysis and graphics. It covers basic R operations like vectors, arrays, matrices, data frames, reading data, probability distributions, and writing functions. The document contains copyright information and a table of contents describing its 10 chapters on getting started with R and its core functionality.
This document provides an overview of SWI-Prolog, a comprehensive and portable implementation of the Prolog programming language. It aims to be a robust and scalable implementation supporting a wide range of applications, with extensive support for interfaces to other languages, databases, graphics and networking. The document covers topics like getting started with SWI-Prolog, developing Prolog projects, the integrated development environment, built-in predicates, and system limits.
This document provides information on programming robots using KUKA System Software (KSS) Release 5.2, including:
- The structure and creation of programs, editing programs, and altering programs
- Declaring variables and data objects like arrays, strings, and structures
- Manipulating data using operators and functions
- Using system variables, files, and manipulating string variables
This document provides an overview of SystemTap, an instrumentation tool for the Linux kernel. It describes SystemTap's architecture and technical details, how to install it, and examples of using it to analyze performance and functional problems in the kernel. Key topics covered include SystemTap's probing capabilities, scripting language, common use cases like call graph generation and function timing, and debugging techniques for issues like TCP/IP, page faults, and NFS.
The document provides tutorials and documentation on advanced stateful features in TRex, an open source traffic generation and emulation tool. It describes how TRex can generate stateful traffic at scale, emulate layers 3-7 protocols, and provide capabilities like GTP tunneling. The tutorials cover topics like configuring stateful profiles, running simulations, automation with Python, and clustering multiple TRex clients to generate high volumes of stateful traffic.
This document provides an introduction to using the R programming environment for data analysis and graphics. It covers basic R concepts like vectors, matrices, arrays, factors, lists and data frames. It also describes how to perform common data manipulations and access help documentation. The document is copyrighted by the R Development Core Team and permission is granted to distribute verbatim or modified copies.
This document provides an introduction to using the R programming environment. It covers basic topics like vectors, factors, arrays, matrices, lists and data frames. The document is copyrighted by multiple individuals and development teams between 1990-2010. Permission is granted to distribute verbatim or modified copies of the manual under certain conditions.
This document provides an introduction to using the R programming environment. It covers basic topics like vectors, factors, arrays, matrices, lists and data frames. The document is copyrighted by multiple individuals and development teams between 1990-2010. Permission is granted to distribute copies of the manual if the copyright notice is preserved.
This document provides an introduction to using the R programming environment. It covers basic topics like vectors, factors, arrays, matrices, lists and data frames. It also discusses getting help, executing commands interactively or from files, and managing objects and attributes in R. The document is copyrighted by the R Development Core Team and permission is granted to distribute verbatim or modified copies.
This document summarizes a research paper that proposes a novel symmetric key cryptography algorithm (N-SKC) to improve data security in cloud computing. The N-SKC algorithm uses multiple computational steps, random operator and delimiter selections to encrypt data with the same key producing different ciphertexts. It is designed to protect against brute force attacks. The paper also proposes using RSA for key exchange between the cloud provider and user to secretly share a symmetric key for encryption. Experimental results testing the N-SKC algorithm show it produces different ciphertexts for the same plaintext and key.
The document outlines the course content for Web Technology and Internet & Java Programming courses. Some of the key topics covered include:
- Introduction to web protocols, development strategies, and applications
- Web page design using HTML, CSS, XML, and dynamic content
- Client-side scripting using JavaScript, AJAX, and VBScript
- Server-side programming using ASP, JSP, servlets, and databases
- PHP syntax, variables, operators, forms, sessions, and file uploads
- Core Java concepts like data types, OOP, exceptions, I/O, applets, and AWT/Swing
- Java networking, RMI, servlets, JSP, beans, and
This document provides an introduction to the C++ programming language. It discusses the history and evolution of C++. The document outlines some key differences between C and C++, such as namespaces, references, and classes. It also introduces several important C++ concepts, like object-oriented programming, the string data type, input/output streams, and classes. The document serves as a textbook for C++ programming courses taught at the University of Groningen.
This document is an introduction to the PDF version of an online book about programming in Java. It provides some basic information about the book, including that it is available online at a given URL, the PDF does not include source code or solutions but provides links to those resources, and each section has a link to the online version. It also covers licensing details, noting that the work can be distributed unmodified for non-commercial purposes under a Creative Commons license.
This document is an introduction to an online textbook for learning to program in Java. It provides an overview of the textbook's contents and structure. The textbook is available both as a PDF and on the web. It covers topics such as machine language, object-oriented programming, user interfaces, and the internet as they relate to Java programming. The textbook is released under a Creative Commons license that allows for free distribution with modifications.
This document provides an overview of the Maxima computer algebra system, including its history and development from Macsyma. It describes several interfaces for interacting with Maxima, such as the terminal interface, Emacs interface, and Xmaxima graphical interface. It also covers basic functions and operations in Maxima like trigonometric functions, differentiation, integration, and solving ordinary differential equations. The document consists of multiple parts that describe additional packages, installing Maxima, resources and troubleshooting.
This document provides lecture notes for a C++ course. It notes that the document is a work in progress and needs polishing. It describes the tools used for the course, including GNU/Linux, GNU C++ compiler, emacs text editor, and UNIX commands. It also provides information on copyright and allows for free redistribution of the document without modification. The document then outlines the various chapters that will be covered in the course, including memory and CPU concepts, shell and C++ basics, expressions and functions, arrays and pointers, debugging, algorithms and sorting.
This document is an introduction to programming using Java version 5.0 from December 2006. It was written by David J. Eck of Hobart and William Smith Colleges. The document covers Java programming concepts such as machine language, asynchronous events, the Java virtual machine, object-oriented programming, and the modern user interface. It is licensed under the Creative Commons Attribution-Share Alike license and its web site is provided. The document contains chapters and exercises to teach Java programming.
This document provides contact and support information for The MathWorks' Communications System Toolbox. It lists the toolbox's user guide revision history and table of contents. The guide covers topics like input/output, data and signal management, adaptive equalization examples, and system design techniques for communications systems.
This document contains lecture notes for a computer programming course taught at Universiti Tun Hussein Onn Malaysia. It covers topics like the structure of C programs, operators and expressions, selection statements, and repetition. The notes were written by Winardi Sani and several tutors are listed. The document is organized into chapters with sections covering specific programming concepts.
This document contains lecture notes for a Computer Programming course taught at Universiti Tun Hussein Onn Malaysia. It covers topics including the structure of C programs, operators and expressions, selection statements, and repetition. The notes were written by Winardi Sani and include tutorials by Imran bin Razali, Muhamad Zaini bin Yunos, Sharifah Z.R. Bt Syed Ahmad, and Faizul Amin Anuar.
This document provides an introduction to using R, an open-source programming language and software environment for statistical analysis and graphics. It covers basic R operations like vectors, arrays, matrices, data frames, reading data, probability distributions, and writing functions. The document contains copyright information and a table of contents describing its 10 chapters on getting started with R and its core functionality.
This document provides an overview of SWI-Prolog, a comprehensive and portable implementation of the Prolog programming language. It aims to be a robust and scalable implementation supporting a wide range of applications, with extensive support for interfaces to other languages, databases, graphics and networking. The document covers topics like getting started with SWI-Prolog, developing Prolog projects, the integrated development environment, built-in predicates, and system limits.
This document provides information on programming robots using KUKA System Software (KSS) Release 5.2, including:
- The structure and creation of programs, editing programs, and altering programs
- Declaring variables and data objects like arrays, strings, and structures
- Manipulating data using operators and functions
- Using system variables, files, and manipulating string variables
This document provides an overview of SystemTap, an instrumentation tool for the Linux kernel. It describes SystemTap's architecture and technical details, how to install it, and examples of using it to analyze performance and functional problems in the kernel. Key topics covered include SystemTap's probing capabilities, scripting language, common use cases like call graph generation and function timing, and debugging techniques for issues like TCP/IP, page faults, and NFS.
The document provides tutorials and documentation on advanced stateful features in TRex, an open source traffic generation and emulation tool. It describes how TRex can generate stateful traffic at scale, emulate layers 3-7 protocols, and provide capabilities like GTP tunneling. The tutorials cover topics like configuring stateful profiles, running simulations, automation with Python, and clustering multiple TRex clients to generate high volumes of stateful traffic.
This document provides an introduction to using the R programming environment for data analysis and graphics. It covers basic R concepts like vectors, matrices, arrays, factors, lists and data frames. It also describes how to perform common data manipulations and access help documentation. The document is copyrighted by the R Development Core Team and permission is granted to distribute verbatim or modified copies.
This document provides an introduction to using the R programming environment. It covers basic topics like vectors, factors, arrays, matrices, lists and data frames. The document is copyrighted by multiple individuals and development teams between 1990-2010. Permission is granted to distribute verbatim or modified copies of the manual under certain conditions.
This document provides an introduction to using the R programming environment. It covers basic topics like vectors, factors, arrays, matrices, lists and data frames. The document is copyrighted by multiple individuals and development teams between 1990-2010. Permission is granted to distribute copies of the manual if the copyright notice is preserved.
This document provides an introduction to using the R programming environment. It covers basic topics like vectors, factors, arrays, matrices, lists and data frames. It also discusses getting help, executing commands interactively or from files, and managing objects and attributes in R. The document is copyrighted by the R Development Core Team and permission is granted to distribute verbatim or modified copies.
This document summarizes a research paper that proposes a novel symmetric key cryptography algorithm (N-SKC) to improve data security in cloud computing. The N-SKC algorithm uses multiple computational steps, random operator and delimiter selections to encrypt data with the same key producing different ciphertexts. It is designed to protect against brute force attacks. The paper also proposes using RSA for key exchange between the cloud provider and user to secretly share a symmetric key for encryption. Experimental results testing the N-SKC algorithm show it produces different ciphertexts for the same plaintext and key.
The document outlines the course content for Web Technology and Internet & Java Programming courses. Some of the key topics covered include:
- Introduction to web protocols, development strategies, and applications
- Web page design using HTML, CSS, XML, and dynamic content
- Client-side scripting using JavaScript, AJAX, and VBScript
- Server-side programming using ASP, JSP, servlets, and databases
- PHP syntax, variables, operators, forms, sessions, and file uploads
- Core Java concepts like data types, OOP, exceptions, I/O, applets, and AWT/Swing
- Java networking, RMI, servlets, JSP, beans, and
This document provides an introduction and overview of the C# programming language. It discusses the goals of C# including being a simple, modern, object-oriented language with strong type checking and automatic garbage collection. It also briefly covers the history and development of C#, key language features such as classes and inheritance, and provides a basic "Hello World" example to demonstrate creating a C# program.
This document outlines the orientation program for first year MCA and MCA dual degree students. It introduces the director, HOD, and faculty of the program. It describes the course structure as a 3 or 5 year program divided into semesters. It provides information on notice boards, timings, internal assessments, attendance requirements, and sessional marks. Finally, it includes the syllabus for the first semester of MCA and MCA dual degree programs, listing the courses, periods, and evaluation schemes.
This document provides an introduction to PHP, including:
- PHP is a server-side scripting language used for building dynamic web content and integrating with databases.
- It is free, open-source, and runs on many platforms. Common uses include building entire e-commerce sites.
- The minimum requirements to use PHP include a PHP-enabled web server, web browser, and text editor for writing PHP scripts.
Genetically engineered seeds that are non-renewable, or "seed suicide", have led to increased farmer suicides in India. Known as terminator seeds, they must be repurchased each season rather than allowing harvest of future generations. When farmers take on debt to purchase the seeds but face crop failures or losses, landlords often seize their land, leaving farmers with no alternative but suicide. In contrast, sustainable agriculture aims to meet current needs without compromising future generations through practices that integrate environmental protection, economic viability, and social equity such as crop rotation and soil amendment.
A workshop hosted by the South African Journal of Science aimed at postgraduate students and early career researchers with little or no experience in writing and publishing journal articles.
This presentation includes basic of PCOS their pathology and treatment and also Ayurveda correlation of PCOS and Ayurvedic line of treatment mentioned in classics.
This slide is special for master students (MIBS & MIFB) in UUM. Also useful for readers who are interested in the topic of contemporary Islamic banking.
How to Build a Module in Odoo 17 Using the Scaffold MethodCeline George
Odoo provides an option for creating a module by using a single line command. By using this command the user can make a whole structure of a module. It is very easy for a beginner to make a module. There is no need to make each file manually. This slide will show how to create a module using the scaffold method.
it describes the bony anatomy including the femoral head , acetabulum, labrum . also discusses the capsule , ligaments . muscle that act on the hip joint and the range of motion are outlined. factors affecting hip joint stability and weight transmission through the joint are summarized.
How to Setup Warehouse & Location in Odoo 17 InventoryCeline George
In this slide, we'll explore how to set up warehouses and locations in Odoo 17 Inventory. This will help us manage our stock effectively, track inventory levels, and streamline warehouse operations.
A review of the growth of the Israel Genealogy Research Association Database Collection for the last 12 months. Our collection is now passed the 3 million mark and still growing. See which archives have contributed the most. See the different types of records we have, and which years have had records added. You can also see what we have for the future.
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Dr. Vinod Kumar Kanvaria
Exploiting Artificial Intelligence for Empowering Researchers and Faculty,
International FDP on Fundamentals of Research in Social Sciences
at Integral University, Lucknow, 06.06.2024
By Dr. Vinod Kumar Kanvaria
How to Add Chatter in the odoo 17 ERP ModuleCeline George
In Odoo, the chatter is like a chat tool that helps you work together on records. You can leave notes and track things, making it easier to talk with your team and partners. Inside chatter, all communication history, activity, and changes will be displayed.
3. Revision History
June 2004 First printing New for MATLAB 7.0 (Release 14)
October 2004 Online only Revised for MATLAB 7.0.1 (Release 14SP1)
March 2005 Online only Revised for MATLAB 7.0.4 (Release 14SP2)
June 2005 Second printing Minor revision for MATLAB 7.0.4
September 2005 Online only Revised for MATLAB 7.1 (Release 14SP3)
March 2006 Online only Revised for MATLAB 7.2 (Release 2006a)
September 2006 Online only Revised for MATLAB 7.3 (Release 2006b)
March 2007 Online only Revised for MATLAB 7.4 (Release 2007a)
September 2007 Online only Revised for Version 7.5 (Release 2007b)
March 2008 Online only Revised for Version 7.6 (Release 2008a)
October 2008 Online only Revised for Version 7.7 (Release 2008b)
March 2009 Online only Revised for Version 7.8 (Release 2009a)
September 2009 Online only Revised for Version 7.9 (Release 2009b)
March 2010 Online only Revised for Version 7.10 (Release 2010a)
September 2010 Online only Revised for Version 7.11 (Release 2010b)
April 2011 Online only Revised for Version 7.12 (Release 2011a)
September 2011 Online only Revised for Version 7.13 (Release 2011b)
March 2012 Online only Revised for Version 7.14 (Release 2012a)
September 2012 Online only Revised for Version 8.0 (Release 2012b)
March 2013 Online only Revised for Version 8.1 (Release 2013a)
September 2013 Online only Revised for Version 8.2 (Release 2013b)
March 2014 Online only Revised for Version 8.3 (Release 2014a)
35. 1
Syntax Basics
• “Create Variables” on page 1-2
• “Create Numeric Arrays” on page 1-3
• “Continue Long Statements on Multiple Lines” on page 1-5
• “Call Functions” on page 1-6
• “Ignore Function Outputs” on page 1-7
• “Variable Names” on page 1-8
• “Case and Space Sensitivity” on page 1-10
• “Command vs. Function Syntax” on page 1-12
• “Common Errors When Calling Functions” on page 1-16
36. 1 Syntax Basics
Create Variables
This example shows several ways to assign a value to a variable.
x = 5.71;
A = [1 2 3; 4 5 6; 7 8 9];
I = besseli(x,A);
You do not have to declare variables before assigning values.
If you do not end an assignment statement with a semicolon (;), MATLAB®
displays the result in the Command Window. For example,
x = 5.71
displays
x =
5.7100
If you do not explicitly assign the output of a command to a variable, MATLAB
generally assigns the result to the reserved word ans. For example,
5.71
returns
ans =
5.7100
The value of ans changes with every command that returns an output value
that is not assigned to a variable.
1-2
37. Create Numeric Arrays
Create Numeric Arrays
This example shows how to create a numeric variable. In the MATLAB
computing environment, all variables are arrays, and by default, numeric
variables are of type double (that is, double-precision values). For example,
create a scalar value.
A = 100;
Because scalar values are single element, 1-by-1 arrays,
whos A
returns
Name Size Bytes Class Attributes
A 1x1 8 double
To create a matrix (a two-dimensional, rectangular array of numbers), you
can use the [] operator.
B = [12, 62, 93, -8, 22; 16, 2, 87, 43, 91; -4, 17, -72, 95, 6]
When using this operator, separate columns with a comma or space, and
separate rows with a semicolon. All rows must have the same number of
elements. In this example, B is a 3-by-5 matrix (that is, B has three rows
and five columns).
B =
12 62 93 -8 22
16 2 87 43 91
-4 17 -72 95 6
A matrix with only one row or column (that is, a 1-by-n or n-by-1 array) is
a vector, such as
C = [1, 2, 3]
or
D = [10; 20; 30]
1-3
38. 1 Syntax Basics
For more information, see:
• “Multidimensional Arrays”
• “Matrix Indexing”
1-4
39. Continue Long Statements on Multiple Lines
Continue Long Statements on Multiple Lines
This example shows how to continue a statement to the next line using
ellipses (...).
s = 1 - 1/2 + 1/3 - 1/4 + 1/5 ...
- 1/6 + 1/7 - 1/8 + 1/9;
Build a long character string by concatenating shorter strings together:
mystring = ['Accelerating the pace of ' ...
'engineering and science'];
The start and end quotation marks for a string must appear on the same
line. For example, this code returns an error, because each line contains only
one quotation mark:
mystring = 'Accelerating the pace of ...
engineering and science'
An ellipses outside a quoted string is equivalent to a space. For example,
x = [1.23...
4.56];
is the same as
x = [1.23 4.56];
1-5
40. 1 Syntax Basics
Call Functions
These examples show how to call a MATLAB function. To run the examples,
you must first create numeric arrays A and B, such as:
A = [1 3 5];
B = [10 6 4];
Enclose inputs to functions in parentheses:
max(A)
Separate multiple inputs with commas:
max(A,B)
Store output from a function by assigning it to a variable:
maxA = max(A)
Enclose multiple outputs in square brackets:
[maxA, location] = max(A)
Call a function that does not require any inputs, and does not return any
outputs, by typing only the function name:
clc
Enclose text string inputs in single quotation marks:
disp('hello world')
Related
Examples
• “Ignore Function Outputs” on page 1-7
1-6
41. Ignore Function Outputs
Ignore Function Outputs
This example shows how to request specific outputs from a function.
Request all three possible outputs from the fileparts function.
helpFile = which('help');
[helpPath,name,ext] = fileparts(helpFile);
The current workspace now contains three variables from fileparts:
helpPath, name, and ext. In this case, the variables are small. However,
some functions return results that use much more memory. If you do not need
those variables, they waste space on your system.
Request only the first output, ignoring the second and third.
helpPath = fileparts(helpFile);
For any function, you can request only the first outputs (where is less
than or equal to the number of possible outputs) and ignore any remaining
outputs. If you request more than one output, enclose the variable names in
square brackets, [].
Ignore the first output using a tilde (~).
[~,name,ext] = fileparts(helpFile);
You can ignore any number of function outputs, in any position in the
argument list. Separate consecutive tildes with a comma, such as
[~,~,ext] = fileparts(helpFile);
1-7
42. 1 Syntax Basics
Variable Names
In this section...
“Valid Names” on page 1-8
“Conflicts with Function Names” on page 1-8
Valid Names
A valid variable name starts with a letter, followed by letters, digits, or
underscores. MATLAB is case sensitive, so A and a are not the same variable.
The maximum length of a variable name is the value that the namelengthmax
command returns.
You cannot define variables with the same names as MATLAB keywords,
such as if or end. For a complete list, run the iskeyword command.
Examples of valid names: Invalid names:
x6 6x
lastValue end
n_factorial n!
Conflicts with Function Names
Avoid creating variables with the same name as a function (such as i, j,
mode, char, size, and path). In general, variable names take precedence over
function names. If you create a variable that uses the name of a function, you
sometimes get unexpected results.
Check whether a proposed name is already in use with the exist or which
function. exist returns 0 if there are no existing variables, functions, or other
artifacts with the proposed name. For example:
exist checkname
ans =
0
1-8
43. Variable Names
If you inadvertently create a variable with a name conflict, remove the
variable from memory with the clear function.
Another potential source of name conflicts occurs when you define a function
that calls load or eval (or similar functions) to add variables to the
workspace. In some cases, load or eval add variables that have the same
names as functions. Unless these variables are in the function workspace
before the call to load or eval, the MATLAB parser interprets the variable
names as function names. For more information, see:
• “Loading Variables within a Function”
• “Alternatives to the eval Function” on page 2-69
See Also clear | exist | iskeyword | namelengthmax | which
1-9
44. 1 Syntax Basics
Case and Space Sensitivity
MATLAB code is sensitive to casing, and insensitive to blank spaces except
when defining arrays.
Uppercase and Lowercase
In MATLAB code, use an exact match with regard to case for variables, files,
and functions. For example, if you have a variable, a, you cannot refer to
that variable as A. It is a best practice to use lowercase only when naming
functions. This is especially useful when you use both Microsoft® Windows®
and UNIX®1
platforms because their file systems behave differently with
regard to case.
When you use the help function, the help displays some function names in all
uppercase, for example, PLOT, solely to distinguish the function name from the
rest of the text. Some functions for interfacing to Oracle® Java® software do
use mixed case and the command-line help and the documentation accurately
reflect that.
Spaces
Blank spaces around operators such as -, :, and ( ), are optional, but they
can improve readability. For example, MATLAB interprets the following
statements the same way.
y = sin (3 * pi) / 2
y=sin(3*pi)/2
However, blank spaces act as delimiters in horizontal concatenation. When
defining row vectors, you can use spaces and commas interchangeably to
separate elements:
A = [1, 0 2, 3 3]
A =
1 0 2 3 3
1. UNIX is a registered trademark of The Open Group in the United States and other
countries.
1-10
45. Case and Space Sensitivity
Because of this flexibility, check to ensure that MATLAB stores the correct
values. For example, the statement [1 sin (pi) 3] produces a much
different result than [1 sin(pi) 3] does.
[1 sin (pi) 3]
Error using sin
Not enough input arguments.
[1 sin(pi) 3]
ans =
1.0000 0.0000 3.0000
1-11
46. 1 Syntax Basics
Command vs. Function Syntax
In this section...
“Command and Function Syntaxes” on page 1-12
“Avoid Common Syntax Mistakes” on page 1-13
“How MATLAB Recognizes Command Syntax” on page 1-14
Command and Function Syntaxes
In MATLAB, these statements are equivalent:
load durer.mat % Command syntax
load('durer.mat') % Function syntax
This equivalence is sometimes referred to as command-function duality.
All functions support this standard function syntax:
[output1, ..., outputM] = functionName(input1, ..., inputN)
If you do not require any outputs from the function, and all of the inputs
are literal strings (that is, text enclosed in single quotation marks), you can
use this simpler command syntax:
functionName input1 ... inputN
With command syntax, you separate inputs with spaces rather than commas,
and do not enclose input arguments in parentheses. Because all inputs are
literal strings, single quotation marks are optional, unless the input string
contains spaces. For example:
disp 'hello world'
When a function input is a variable, you must use function syntax to pass the
value to the function. Command syntax always passes inputs as literal text
and cannot pass variable values. For example, create a variable and call the
disp function with function syntax to pass the value of the variable:
A = 123;
disp(A)
1-12
47. Command vs. Function Syntax
This code returns the expected result,
123
You cannot use command syntax to pass the value of A, because this call
disp A
is equivalent to
disp('A')
and returns
A
Avoid Common Syntax Mistakes
Suppose that your workspace contains these variables:
filename = 'accounts.txt';
A = int8(1:8);
B = A;
The following table illustrates common misapplications of command syntax.
This Command... Is Equivalent to... Correct Syntax for Passing
Value
open filename open('filename') open(filename)
isequal A B isequal('A','B') isequal(A,B)
strcmp class(A) int8 strcmp('class(A)','int8') strcmp(class(A),'int8')
cd matlabroot cd('matlabroot') cd(matlabroot)
isnumeric 500 isnumeric('500') isnumeric(500)
round 3.499 round('3.499'), same as
round([51 46 52 57 57])
round(3.499)
Passing Variable Names
Some functions expect literal strings for variable names, such as save, load,
clear, and whos. For example,
1-13
48. 1 Syntax Basics
whos -file durer.mat X
requests information about variable X in the example file durer.mat. This
command is equivalent to
whos('-file','durer.mat','X')
How MATLAB Recognizes Command Syntax
Consider the potentially ambiguous statement
ls ./d
This could be a call to the ls function with the folder ./d as its argument. It
also could request elementwise division on the array ls, using the variable
d as the divisor.
If you issue such a statement at the command line, MATLAB can access the
current workspace and path to determine whether ls and d are functions or
variables. However, some components, such as the Code Analyzer and the
Editor/Debugger, operate without reference to the path or workspace. In those
cases, MATLAB uses syntactic rules to determine whether an expression is a
function call using command syntax.
In general, when MATLAB recognizes an identifier (which might name a
function or a variable), it analyzes the characters that follow the identifier to
determine the type of expression, as follows:
• An equal sign (=) implies assignment. For example:
ls =d
• An open parenthesis after an identifier implies a function call. For example:
ls('./d')
• Space after an identifier, but not after a potential operator, implies a
function call using command syntax. For example:
ls ./d
1-14
49. Command vs. Function Syntax
• Spaces on both sides of a potential operator, or no spaces on either side
of the operator, imply an operation on variables. For example, these
statements are equivalent:
ls ./ d
ls./d
Therefore, the potentially ambiguous statement ls ./d is a call to the ls
function using command syntax.
The best practice is to avoid defining variable names that conflict with
common functions, to prevent any ambiguity.
1-15
50. 1 Syntax Basics
Common Errors When Calling Functions
In this section...
“Conflicting Function and Variable Names” on page 1-16
“Undefined Functions or Variables” on page 1-16
Conflicting Function and Variable Names
MATLAB throws an error if a variable and function have been given the same
name and there is insufficient information available for MATLAB to resolve
the conflict. You may see an error message something like the following:
Error: <functionName> was previously used as a variable,
conflicting with its use here as the name of a function
or command.
where <functionName> is the name of the function.
Certain uses of the eval and load functions can also result in a similar
conflict between variable and function names. For more information, see:
• “Conflicts with Function Names” on page 1-8
• “Loading Variables within a Function”
• “Alternatives to the eval Function” on page 2-69
Undefined Functions or Variables
You may encounter the following error message, or something similar, while
working with functions or variables in MATLAB:
Undefined function or variable 'x'.
These errors usually indicate that MATLAB cannot find a particular variable
or MATLAB program file in the current directory or on the search path. The
root cause is likely to be one of the following:
• The name of the function has been misspelled.
1-16
51. Common Errors When Calling Functions
• The function name and name of the file containing the function are not
the same.
• The toolbox to which the function belongs is not installed.
• The search path to the function has been changed.
• The function is part of a toolbox that you do not have a license for.
Follow the steps described in this section to resolve this situation.
Verify the Spelling of the Function Name
One of the most common errors is misspelling the function name. Especially
with longer function names or names containing similar characters (e.g., letter
l and numeral one), it is easy to make an error that is not easily detected.
If you misspell a MATLAB function, a suggested function name appears in
the Command Window. For example, this command fails because it includes
an uppercase letter in the function name:
accumArray
Undefined function or variable 'accumArray'.
Did you mean:
>> accumarray
Press Enter to execute the suggested command or Esc to dismiss it.
Make Sure the Function Name Matches the File Name
You establish the name for a function when you write its function definition
line. This name should always match the name of the file you save it to. For
example, if you create a function named curveplot,
function curveplot(xVal, yVal)
- program code -
then you should name the file containing that function curveplot.m. If you
create a pcode file for the function, then name that file curveplot.p. In the
case of conflicting function and file names, the file name overrides the name
given to the function. In this example, if you save the curveplot function to a
1-17
52. 1 Syntax Basics
file named curveplotfunction.m, then attempts to invoke the function using
the function name will fail:
curveplot
Undefined function or variable 'curveplot'.
If you encounter this problem, change either the function name or file name
so that they are the same. If you have difficulty locating the file that uses this
function, use the MATLAB Find Files utility as follows:
1 On the Home tab, in the File section, click Find Files.
2 Under Find files named: enter *.m
3 Under Find files containing text: enter the function name.
4 Click the Find button
1-18
53. Common Errors When Calling Functions
Make Sure the Toolbox Is Installed
If you are unable to use a built-in function from MATLAB or its toolboxes,
make sure that the function is installed.
If you do not know which toolbox supports the function you need, search
for the function documentation at http://www.mathworks.com/help. The
toolbox name appears at the top of the function reference page.
Once you know which toolbox the function belongs to, use the ver function to
see which toolboxes are installed on the system from which you run MATLAB.
The ver function displays a list of all currently installed MathWorks®
products. If you can locate the toolbox you need in the output displayed
by ver, then the toolbox is installed. For help with installing MathWorks
products, see the Installation Guide documentation.
If you do not see the toolbox and you believe that it is installed, then perhaps
the MATLAB path has been set incorrectly. Go on to the next section.
Verify the Path Used to Access the Function
This step resets the path to the default. Because MATLAB stores the toolbox
information in a cache file, you will need to first update this cache and then
reset the path. To do this,
1 On the Home tab, in the Environment section, click Preferences.
The Preference dialog box appears.
2 Under the MATLAB > General node, click the Update Toolbox Path
Cache button.
3 On the Home tab, in the Environment section, click Set Path....
The Set Path dialog box opens.
4 Click Default.
A small dialog box opens warning that you will lose your current path
settings if you proceed. Click Yes if you decide to proceed.
1-19
54. 1 Syntax Basics
(If you have added any custom paths to MATLAB, you will need to restore
those later)
Run ver again to see if the toolbox is installed. If not, you may need to
reinstall this toolbox to use this function. See the Related Solution 1-1CBD3,
"How do I install additional toolboxes into my existing MATLAB" for more
information about installing a toolbox.
Once ver shows your toolbox, run the following command to see if you can
find the function:
which -all <functionname>
replacing <functionname> with the name of the function. You should be
presented with the path(s) of the function file. If you get a message indicating
that the function name was not found, you may need to reinstall that toolbox
to make the function active.
Verify that Your License Covers The Toolbox
If you receive the error message “Has no license available”, there is a
licensing related issue preventing you from using the function. To find the
error that is occurring, you can use the following command:
license checkout <toolbox_license_key_name>
replacing <toolbox_license_key_name> with the proper key name for the
toolbox that contains your function. To find the license key name, look at
the INCREMENT lines in your license file. For information on how to find
your license file see the related solution: 1-63ZIR6, "Where are the license
files for MATLAB located?”
The license key names of all the toolboxes are located after each INCREMENT
tag in the license.dat file. For example:
INCREMENT MATLAB MLM 17 00-jan-0000 0 k
B454554BADECED4258 HOSTID=123456 SN=123456
If your license.dat file has no INCREMENT lines, refer to your license
administrator for them. For example, to test the licensing for Symbolic Math
Toolbox™, you would run the following command:
1-20
55. Common Errors When Calling Functions
license checkout Symbolic_Toolbox
A correct testing gives the result "ANS=1". An incorrect testing results in an
error from the license manager. You can either troubleshoot the error by
looking up the license manager error here:
http://www.mathworks.com/support/install.html
or you can contact the Installation Support Team with the error here:
http://www.mathworks.com/support/contact_us/index.html
When contacting support, provide your license number, your MATLAB
version, the function you are using, and the license manager error (if
applicable).
1-21
57. 2
Program Components
• “Array vs. Matrix Operations” on page 2-2
• “Relational Operators” on page 2-7
• “Operator Precedence” on page 2-9
• “Special Values” on page 2-11
• “Conditional Statements” on page 2-13
• “Loop Control Statements” on page 2-15
• “Represent Dates and Times in MATLAB” on page 2-17
• “Compute Elapsed Time” on page 2-19
• “Carryover in Date Vectors and Strings” on page 2-23
• “Troubleshooting: Converting Date Vector Returns Unexpected Output”
on page 2-24
• “Regular Expressions” on page 2-26
• “Lookahead Assertions in Regular Expressions” on page 2-43
• “Tokens in Regular Expressions” on page 2-46
• “Dynamic Regular Expressions” on page 2-52
• “Comma-Separated Lists” on page 2-61
• “Alternatives to the eval Function” on page 2-69
• “Shell Escape Functions” on page 2-73
• “Symbol Reference” on page 2-74
58. 2 Program Components
Array vs. Matrix Operations
In this section...
“Introduction” on page 2-2
“Array Operations” on page 2-2
“Matrix Operations” on page 2-4
Introduction
MATLAB has two different types of arithmetic operations: array operations
and matrix operations. You can use these arithmetic operations to perform
numeric computations, for example, adding two numbers, raising the
elements of an array to a given power, or multiplying two matrices.
Matrix operations follow the rules of linear algebra. By contrast,
array operations execute element by element operations and support
multidimensional arrays. The period character (.) distinguishes the array
operations from the matrix operations. However, since the matrix and array
operations are the same for addition and subtraction, the character pairs
.+ and .- are unnecessary.
Array Operations
Array operations work on corresponding elements of arrays with equal
dimensions. For vectors, matrices, and multidimensional arrays, both
operands must be the same size. Each element in the first input gets matched
up with a similarly located element from the second input. If the inputs are
different sizes, MATLAB cannot match the elements one-to-one.
As a simple example, you can add two vectors with the same length.
A = [1 1 1]
A =
1 1 1
B = 1:3
2-2
59. Array vs. Matrix Operations
B =
1 2 3
A+B
ans =
2 3 4
If the vectors are not the same size you get an error.
B = 1:4
B =
1 2 3 4
A+B
Error using +
Matrix dimensions must agree.
If one operand is a scalar and the other is not, then MATLAB applies the
scalar to every element of the other operand. This property is known as scalar
expansion because the scalar expands into an array of the same size as the
other input, then the operation executes as it normally does with two arrays.
For example, the element-wise product of a scalar and a matrix uses scalar
expansion.
A = [1 0 2;3 1 4]
A =
1 0 2
3 1 4
3.*A
2-3
60. 2 Program Components
ans =
3 0 6
9 3 12
The following table provides a summary of array arithmetic operators in
MATLAB. For function-specific information, click the link to the function
reference page in the last column.
Operator Purpose Description Reference
Page
+ Addition A+B adds A and B. plus
+ Unary plus +A returns A. uplus
- Subtraction A-B subtracts B from A minus
- Unary
minus
-A negates the elements of A. uminus
.* Element-wise
multiplication
A.*B is the element-by-element
product of A and B.
times
.^ Element-wise
power
A.^B is the matrix with elements
A(i,j) to the B(i,j) power.
power
./ Right array
division
A./B is the matrix with elements
A(i,j)/B(i,j).
rdivide
. Left array
division
A.B is the matrix with elements
B(i,j)/A(i,j).
ldivide
.' Array
transpose
A.' is the array transpose of A. For
complex matrices, this does not
involve conjugation.
transpose
Matrix Operations
Matrix operations follow the rules of linear algebra and are not compatible
with multidimensional arrays. The required size and shape of the inputs
in relation to one another depends on the operation. For nonscalar inputs,
2-4
61. Array vs. Matrix Operations
the matrix operators generally calculate different answers than their array
operator counterparts.
For example, if you use the matrix right division operator, /, to divide two
matrices, the matrices must have the same number of columns. But if you
use the matrix multiplication operator, *, to multiply two matrices, then
the matrices must have a common inner dimension. That is, the number
of columns in the first input must be equal to the number of rows in the
second input. The matrix multiplication operator calculates the product of
two matrices with the formula,
C i j A i k B k j
k
n
( , ) ( , ) ( , ).
1
To see this, you can calculate the product of two matrices.
A = [1 3;2 4]
A =
1 3
2 4
B = [3 0;1 5]
B =
3 0
1 5
A*B
ans =
6 15
10 20
The previous matrix product is not equal to the following element-wise
product.
2-5
62. 2 Program Components
A.*B
ans =
3 0
2 20
The following table provides a summary of matrix arithmetic operators in
MATLAB. For function-specific information, click the link to the function
reference page in the last column.
Operator Purpose Description Reference
Page
* Matrix
multiplication
C = A*B is the linear algebraic
product of the matrices A and B. The
number of columns of A must equal
the number of rows of B.
mtimes
/ Matrix
right
division
x = B/A is the solution to the
equation xA = B. Matrices A and
B must have the same number of
columns. In terms of the left division
operator, B/A = (A'B')'.
mrdivide
Matrix left
division
x = AB is the solution to the
equation Ax = B. Matrices A and B
must have the same number of rows.
mldivide
^ Matrix
power
A^B is A to the power B, if B is a
scalar. For other values of B, the
calculation involves eigenvalues and
eigenvectors.
mpower
' Complex
conjugate
transpose
A' is the linear algebraic transpose
of A. For complex matrices, this is
the complex conjugate transpose.
ctranspose
2-6
63. Relational Operators
Relational Operators
Relational operators compare operands quantitatively, using operators like
“less than” and “not equal to.” The following table provides a summary. For
more information, see the relational operators reference page.
Operator Description
< Less than
<= Less than or equal to
> Greater than
>= Greater than or equal to
== Equal to
~= Not equal to
Relational Operators and Arrays
The MATLAB relational operators compare corresponding elements
of arrays with equal dimensions. Relational operators always operate
element-by-element. In this example, the resulting matrix shows where an
element of A is equal to the corresponding element of B.
A = [2 7 6;9 0 5;3 0.5 6];
B = [8 7 0;3 2 5;4 -1 7];
A == B
ans =
0 1 0
0 0 1
0 0 0
For vectors and rectangular arrays, both operands must be the same size
unless one is a scalar. For the case where one operand is a scalar and the
other is not, MATLAB tests the scalar against every element of the other
operand. Locations where the specified relation is true receive logical 1.
Locations where the relation is false receive logical 0.
2-7
64. 2 Program Components
Relational Operators and Empty Arrays
The relational operators work with arrays for which any dimension has size
zero, as long as both arrays are the same size or one is a scalar. However,
expressions such as
A == []
return an error if A is not 0-by-0 or 1-by-1. This behavior is consistent with
that of all other binary operators, such as +, -, >, <, &, |, etc.
To test for empty arrays, use the function
isempty(A)
2-8
65. Operator Precedence
Operator Precedence
You can build expressions that use any combination of arithmetic, relational,
and logical operators. Precedence levels determine the order in which
MATLAB evaluates an expression. Within each precedence level, operators
have equal precedence and are evaluated from left to right. The precedence
rules for MATLAB operators are shown in this list, ordered from highest
precedence level to lowest precedence level:
1 Parentheses ()
2 Transpose (.'), power (.^), complex conjugate transpose ('), matrix power
(^)
3 Unary plus (+), unary minus (-), logical negation (~)
4 Multiplication (.*), right division (./), left division (.), matrix
multiplication (*), matrix right division (/), matrix left division ()
5 Addition (+), subtraction (-)
6 Colon operator (:)
7 Less than (<), less than or equal to (<=), greater than (>), greater than or
equal to (>=), equal to (==), not equal to (~=)
8 Element-wise AND (&)
9 Element-wise OR (|)
10 Short-circuit AND (&&)
11 Short-circuit OR (||)
Precedence of AND and OR Operators
MATLAB always gives the & operator precedence over the | operator.
Although MATLAB typically evaluates expressions from left to right, the
expression a|b&c is evaluated as a|(b&c). It is a good idea to use parentheses
to explicitly specify the intended precedence of statements containing
combinations of & and |.
2-9
66. 2 Program Components
The same precedence rule holds true for the && and || operators.
Overriding Default Precedence
The default precedence can be overridden using parentheses, as shown in
this example:
A = [3 9 5];
B = [2 1 5];
C = A./B.^2
C =
0.7500 9.0000 0.2000
C = (A./B).^2
C =
2.2500 81.0000 1.0000
2-10
67. Special Values
Special Values
Several functions return important special values that you can use in your
own program files.
Function Return Value
ans Most recent answer (variable). If you do not assign
an output variable to an expression, MATLAB
automatically stores the result in ans.
eps Floating-point relative accuracy. This is the
tolerance the MATLAB software uses in its
calculations.
intmax Largest 8-, 16-, 32-, or 64-bit integer your computer
can represent.
intmin Smallest 8-, 16-, 32-, or 64-bit integer your
computer can represent.
realmax Largest floating-point number your computer can
represent.
realmin Smallest positive floating-point number your
computer can represent.
pi 3.1415926535897...
i, j Imaginary unit.
inf Infinity. Calculations like n/0, where n is any
nonzero real value, result in inf.
NaN Not a Number, an invalid numeric value.
Expressions like 0/0 and inf/inf result in a NaN,
as do arithmetic operations involving a NaN. Also, if
n is complex with a zero real part, then n/0 returns
a value with a NaN real part.
computer Computer type.
version MATLAB version string.
2-11
68. 2 Program Components
Here are some examples that use these values in MATLAB expressions.
x = 2 * pi
x =
6.2832
A = [3+2i 7-8i]
A =
3.0000 + 2.0000i 7.0000 - 8.0000i
tol = 3 * eps
tol =
6.6613e-016
intmax('uint64')
ans =
18446744073709551615
2-12
69. Conditional Statements
Conditional Statements
Conditional statements enable you to select at run time which block of code to
execute. The simplest conditional statement is an if statement. For example:
% Generate a random number
a = randi(100, 1);
% If it is even, divide by 2
if rem(a, 2) == 0
disp('a is even')
b = a/2;
end
if statements can include alternate choices, using the optional keywords
elseif or else. For example:
a = randi(100, 1);
if a < 30
disp('small')
elseif a < 80
disp('medium')
else
disp('large')
end
Alternatively, when you want to test for equality against a set of known
values, use a switch statement. For example:
[dayNum, dayString] = weekday(date, 'long', 'en_US');
switch dayString
case 'Monday'
disp('Start of the work week')
case 'Tuesday'
disp('Day 2')
case 'Wednesday'
disp('Day 3')
case 'Thursday'
disp('Day 4')
2-13
70. 2 Program Components
case 'Friday'
disp('Last day of the work week')
otherwise
disp('Weekend!')
end
For both if and switch, MATLAB executes the code corresponding to the
first true condition, and then exits the code block. Each conditional statement
requires the end keyword.
In general, when you have many possible discrete, known values, switch
statements are easier to read than if statements. However, you cannot test
for inequality between switch and case values. For example, you cannot
implement this type of condition with a switch:
yourNumber = input('Enter a number: ');
if yourNumber < 0
disp('Negative')
elseif yourNumber > 0
disp('Positive')
else
disp('Zero')
end
2-14
71. Loop Control Statements
Loop Control Statements
With loop control statements, you can repeatedly execute a block of code.
There are two types of loops:
• for statements loop a specific number of times, and keep track of each
iteration with an incrementing index variable.
For example, preallocate a 10-element vector, and calculate five values:
x = ones(1,10);
for n = 2:6
x(n) = 2 * x(n - 1);
end
• while statements loop as long as a condition remains true.
For example, find the first integer n for which factorial(n) is a 100-digit
number:
n = 1;
nFactorial = 1;
while nFactorial < 1e100
n = n + 1;
nFactorial = nFactorial * n;
end
Each loop requires the end keyword.
It is a good idea to indent the loops for readability, especially when they are
nested (that is, when one loop contains another loop):
A = zeros(5,100);
for m = 1:5
for n = 1:100
A(m, n) = 1/(m + n - 1);
end
end
You can programmatically exit a loop using a break statement, or skip to
the next iteration of a loop using a continue statement. For example, count
2-15
72. 2 Program Components
the number of lines in the help for the magic function (that is, all comment
lines until a blank line):
fid = fopen('magic.m','r');
count = 0;
while ~feof(fid)
line = fgetl(fid);
if isempty(line)
break
elseif ~strncmp(line,'%',1)
continue
end
count = count + 1;
end
fprintf('%d lines in MAGIC helpn',count);
fclose(fid);
Tip If you inadvertently create an infinite loop (a loop that never ends on its
own), stop execution of the loop by pressing Ctrl+C.
2-16
73. Represent Dates and Times in MATLAB®
Represent Dates and Times in MATLAB
MATLAB represents date and time information in any of three formats:
• Date String — A character string.
Example: Thursday, August 23, 2012 9:45:44.946 AM
• Date Vector — A 1-by-6 numeric vector containing the year, month, day,
hour, minute, and second.
Example: [2012 8 23 9 45 44.946]
• Serial Date Number — A single number equal to the number of days since
January 0, 0000.
Example: 7.3510e+005
You can use any of these formats. If you work with more than one date and
time format, you can convert from one format to another using the datestr,
datevec, and datenum functions.
Date Strings
A date string is a character string composed of fields related to a specific date
and/or time. There are several ways to represent dates and times in character
string format. For example, all of the following are date strings for August 23,
2010 at 04:35:42 PM:
'23-Aug-2010 04:35:06 PM'
'Wednesday, August 23'
'08/23/10 16:35'
'Aug 23 16:35:42.946'
You can represent time in a date string using either a 12-hour or 24-hour
system.
When you create a date string, include any characters you might need to
separate the fields, such as the hyphen, space, and colon used here:
d = '23-Aug-2010 16:35:42'
2-17
74. 2 Program Components
Date Vectors
A date vector is a 1-by-6 matrix of double-precision numbers. Elements of a
date vector are integer valued, with the exception of the seconds element,
which can be fractional. A date vector is arranged in the following order:
year month day hour minute second
The following date vector represents 10:45:07 AM on October 24, 2012:
[2012 10 24 10 45 07]
Date vectors must follow these guidelines:
• Date vectors have no separate field in which to specify milliseconds.
However, the seconds field has a fractional part and accurately keeps
the milliseconds field.
• Time values are expressed in 24-hour notation. There is no AM or PM
setting.
Serial Date Numbers
A serial date number represents a calendar date as the number of days that
has passed since a fixed base date. In MATLAB, serial date number 1 is
January 1, 0000.
MATLAB also uses serial time to represent fractions of days beginning
at midnight; for example, 6 p.m. equals 0.75 serial days. So the string
'31-Oct-2003, 6:00 PM' in MATLAB is date number 731885.75.
If you pass date vectors or date strings to a MATLAB function that accepts
such inputs, MATLAB first converts the input to serial date numbers. If you
are working with a large number of dates or doing extensive calculations with
dates, use serial date numbers for better performance.
2-18
75. Compute Elapsed Time
Compute Elapsed Time
In this section...
“Compute Elapsed Time” on page 2-19
“Compute Future Date” on page 2-20
Compute Elapsed Time
Compute the time elapsed between a specific time and the current time, to
0.01-second accuracy.
Define the initial date and time and convert to date vector form.
format shortg
str = 'March 28, 2012 11:51:00';
t1 = datevec(str,'mmmm dd, yyyy HH:MM:SS')
t1 =
2012 3 28 11 51 0
Determine the current date and time.
t2 = clock
t2 =
2014 1 17 16 0 30.
The clock function returns the current date and time as a date vector.
Use etime to compute the number of seconds between t1 and t2.
e = etime(t2,t1)
2-19
76. 2 Program Components
e =
5.7039e+07
Compute Future Date
You can compute future dates by adding to a date. This topic shows two
ways to do this.
• “Add Days to a Serial Date Number” on page 2-20
• “Add Years, Months, Days, or Time to a Date” on page 2-21
Add Days to a Serial Date Number
This example shows how to add a rational number of days to a serial date
number.
The now function returns the current date in serial date number format. You
can add a number to this date. For this example, add 50 days.
futuredate = now+50
futuredate =
7.3567e+05
Alternatively, the initial date might be in date string format. Convert the
date to a serial date number using the datenum function.
initialdate = datenum('21.03.2012 13:15','dd.mm.yyyy HH:MM');
Add a rational number of dates to the initial date. In this example, add 5.5
days.
futuredate = initialdate + 5.5
2-20
77. Compute Elapsed Time
futuredate =
7.3496e+05
You can convert the future date to date string format.
datestr(futuredate,'dd.mm.yyyy HH:MM')
ans =
27.03.2012 01:15
Add Years, Months, Days, or Time to a Date
This example shows how to add a number of years, months, days, hours,
minutes, seconds, or milliseconds to a date in serial date number format. For
example, add 5 months to January 3, 2012:
Convert the date string to serial date number format.
initialdate = datenum('03/01/2012','dd/mm/yyyy');
Use the addtodate function to add 5 months to the initial date.
futuredate = addtodate(initialdate,5,'month')
futuredate =
735023
To convert the future date to a date string, use the datestr function.
datestr(futuredate, 'dddd, mmmm dd')
2-21
79. Carryover in Date Vectors and Strings
Carryover in Date Vectors and Strings
If an element falls outside the conventional range, MATLAB adjusts both that
date vector element and the previous element. For example, if the minutes
element is 70, MATLAB adjusts the hours element by 1 and sets the minutes
element to 10. If the minutes element is -15, then MATLAB decreases the
hours element by 1 and sets the minutes element to 45. Month values are an
exception. MATLAB sets month values less than 1 to 1.
In the following example, the month element has a value of 22. MATLAB
increments the year value to 2010 and sets the month to October.
datestr([2009 22 03 00 00 00])
ans =
03-Oct-2010
The carrying forward of values also applies to time and day values in date
strings. For example, October 3, 2010 and September 33, 2010 are interpreted
to be the same date, and correspond to the same serial date number.
datenum('03-Oct-2010')
ans =
734414
datenum('33-Sep-2010')
ans =
734414
The following example takes the input month (07, or July), finds the last day
of the previous month (June 30), and subtracts the number of days in the field
specifier (5 days) from that date to yield a return date of June 25, 2010.
datestr([2010 07 -05 00 00 00])
ans =
25-Jun-2010
2-23