# MATLAB, 4th Edition ebook free download

*This page intentionally left blank *

® ATLAB M

An Introduction

with Applications

*This page intentionally left blank *

® ATLAB M

An Introduction

with Applications

Fourth Edition Amos Gilat Department of Mechanical Engineering The Ohio State UniversityJOHN WILEY & SONS, INC. VP & EXECUTIVE PUBLISHER Don Fowley PUBLISHER Dan Sayre MARKETING MANAGER Christopher Ruel EDITORIAL ASSISTANT Katie Singleton DESIGNER Wendy Lai MEDIA EDITOR Thomas Kulesa PRODUCTION MANAGER Micheline Frederick PRODUCTION EDITOR Amy Weintraub Cover images: Amos Gilat

This book was printed and bound by Malloy Lithographers. The cover was printed by

Malloy Lithographers.This book is printed on acid free paper.

∞

Copyright © 2011 John Wiley & Sons, Inc. All rights reserved. No part of this publi-

cation may be reproduced, stored in a retrieval system or transmitted in any form or

by any means, electronic, mechanical, photocopying, recording, scanning or other-wise, except as permitted under Sections 107 or 108 of the 1976 United States Copy-

right Act, without either the prior written permission of the Publisher, or authorization

through payment of the appropriate per-copy fee to the Copyright Clearance Center,

Inc. 222 Rosewood Drive, Danvers, MA 01923, website Requests to the Publisher for permission should be addressed to the PermissionsDepartment, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030-5774,

(201)748-6011, fax (201)748-6008, website

"Evaluation copies are provided to qualified academics and professionals for review

purposes only, for use in their courses during the next academic year. These copies

are licensed and may not be sold or transferred to a third party. Upon completion of

the review period, please return the evaluation copy to Wiley. Return instructions and

a free of charge return shipping

Outside of the United States, please contact your local representative." **Library of Congress Cataloging in Publication Data:**

ISBN-13 978-0-470-76785-6 Printed in the United States of America 10 9 8 7 6 5 4 3 2 1

**Preface**

MATLAB® is a very popular language for technical computing used by stu- dents, engineers, and scientists in universities, research institutes, and industries all over the world. The software is popular because it is powerful and easy to use. For university freshmen in it can be thought of as the next tool to use after the graphic calculator in high school.

This book was written following several years of teaching the software to freshmen in an introductory engineering course. The objective was to write a book that teaches the software in a friendly, non-intimidating fashion. Therefore, the book is written in simple and direct language. In many places bullets, rather than lengthy text, are used to list facts and details that are related to a specific topic. The book includes numerous sample problems in mathematics, science, and engi- neering that are similar to problems encountered by new users of MATLAB.

This fourth edition of the book is updated to MATLAB 7.11 (Release 2010b). Other modifications/changes to this edition are: programming (now

Chapter 6) is introduced before user-defined functions (now Chapter 7), applica- tions in numerical analysis (now Chapter 9) follows polynomials, curve fitting and interpolation that is covered in Chapter 8. The last two chapters are 3D plot- ting (now Chapter 10) and symbolic math (Chapter 11). In addition, the end of chapter problems have been revised. There are many more problems in every chapter, and close to 80% are new of different than in previous editions. In addi- tion, the problems cover a wider range of topics.

I would like to thank several of my colleagues at The Ohio State University. Professors Richard Freuler, Mark Walter, and Walter Lampert, and Dr. Mike Parke read sections of the book and suggested modifications. I also appreciate the involvement and support of Professors Robert Gustafson and John Demel and Dr. John Merrill from the First-Year Engineering Program at The Ohio State Univer- sity. Special thanks go to Professor Mike Lichtensteiger (OSU), and my daughter Tal Gilat (Marquette University), who carefully reviewed the first edition of the book and provided valuable comments and criticisms. Professor Brian Harper (OSU) has made a significant contribution to the new end of chapter problems in the present edition.

I would like to express my appreciation to all those who have reviewed the first edition of the text at its various stages of development, including Betty Barr, University of Houston; Andrei G. Chakhovskoi, University of California, Davis; Roger King, University of Toledo; Richard Kwor, University of Colorado at Colo- rado Springs; Larry Lagerstrom, University of California, Davis; Yueh-Jaw Lin, University of Akron; H. David Sheets, Canisius College; Geb Thomas, University

**v**

** Preface**

of Iowa; Brian Vick, Virginia Polytechnic Institute and State University; Jay Weitzen, University of Massachusetts, Lowell; and Jane Patterson Fife, The Ohio State University. In addition, I would like to acknowledge Daniel Sayre, Ken San- tor, and Katie Singleton, all from John Wiley & Sons, who supported the produc- tion of the Fourth edition.

I hope that the book will be useful and will help the users of MATLAB to enjoy the software. Amos Gilat Columbus, Ohio November, 2010 gilat.1@osu.edu

*To my parents Schoschana and Haim Gelbwacks*

**Contents** **Preface v** **Introduction**

**1** **Chapter 1** **Starting with MATLAB**

**5**

1.1 S TARTING MATLAB, MATLAB W

INDOWS

**5**

1.2 W ORKING

IN THE C OMMAND W

INDOW

**9**

1.3 A RITHMETIC O PERATIONS WITH S CALARS

**10**

1.3.1 Order of Precedence

**11**

1.3.2 Using MATLAB as a Calculator

**11**

1.4 D

ISPLAY F ORMATS

**12**

- 1.5 E LEMENTARY M ATH B UILT

IN F UNCTIONS

**13**

1.6 D EFINING S CALAR

V ARIABLES

**16**

1.6.1 The Assignment Operator

**16**

1.6.2 Rules About Variable Names

**18**

1.6.3 Predefined Variables and Keywords

**18**

1.7 U SEFUL C OMMANDS FOR M ANAGING

V ARIABLES

**19**

1.8 S CRIPT F

ILES

**20**

1.8.1 Notes About Script Files

**20**

1.8.2 Creating and Saving a Script File

**21**

1.8.3 Running (Executing) a Script File

**22**

1.8.4 Current Folder

**22**

1.9 E

XAMPLES OF MATLAB A PPLICATIONS

**24**

1.10 P ROBLEMS

**27** **Chapter 2** **Creating Arrays**

**35**

2.1 C REATING A O NE -D

IMENSIONAL A RRAY (V ECTOR )

**35**

2.2 C REATING A T WO -D

IMENSIONAL A RRAY (M ATRIX )

**39**

**2.2.1 The zeros, ones and, eye Commands**

**40**

2.3 N OTES A BOUT

V ARIABLES

## IN MATLAB

**41**

2.4 T HE T RANSPOSE O PERATOR

**41**

2.5 A RRAY A DDRESSING

**42**

2.5.1 Vector

**42**

2.5.2 Matrix

**43**

2.6 U SING A C OLON :

IN A DDRESSING A RRAYS

**44**

2.7 A DDING E LEMENTS TO E

XISTING

V ARIABLES

**46**

2.8 D ELETING E LEMENTS

**48**

- 2.9 B UILT

IN F UNCTIONS FOR H ANDLING A RRAYS

**49**

2.10 S TRINGS AND S TRINGS AS

V ARIABLES

**53**

2.11 P ROBLEMS

**55** **Chapter 3** **Mathematical Operations with Arrays**

**63**

3.1 A DDITION AND S UBTRACTION

**64**

3.2 A RRAY M ULTIPLICATION

**65**

3.3 A RRAY D

IVISION

**68** **vii**

** Contents**

- 3.4 E LEMENT BY -E LEMENT O PERATIONS

**72**

3.5 U - SING A RRAYS

IN MATLAB B UILT

IN M ATH F UNCTIONS

**75**

- 3.6 B UILT

IN F UNCTIONS FOR A NALYZING A RRAYS

**75**

3.7 G ENERATION OF R ANDOM N UMBERS

**77**

3.8 E

XAMPLES OF MATLAB A PPLICATIONS

**80**

3.9 P ROBLEMS

**86** **Chapter 4** **Using Script Files and Managing Data**

**95**

4.1 T HE MATLAB W ORKSPACE AND THE W ORKSPACE W

INDOW

**96**

4.2 I NPUT TO A S CRIPT F

ILE

**97**

4.3 O UTPUT C OMMANDS

**100**

4.3.1 The disp Command **101**

4.3.2 The fprintf Command **103**

4.4 T HE AND OMMANDS save load C **111**

4.4.1 The save Command **111**

4.4.2 The load Command **112**

4.5 I MPORTING AND E

XPORTING D ATA **114**

4.5.1 Commands for Importing and Exporting Data

**114**

4.5.2 Using the Import Wizard

**116**

4.6 E

XAMPLES OF MATLAB A PPLICATIONS **118**

4.7 P ROBLEMS

**123**

## Chapter 5 Two-Dimensional Plots 133

5.1 T HE OMMAND plot C **134**

5.1.1 Plot of Given Data

**138**

5.1.2 Plot of a Function

**139**

5.2 T HE OMMAND fplot C **140**

5.3 P LOTTING M ULTIPLE G RAPHS

IN THE S AME P LOT **141**

5.3.1 Using the plot Command **141**

5.3.2 Using the hold on and hold off Commands **142**

5.3.3 Using the line Command **143**

5.4 F ORMATTING A P LOT

**144**

5.4.1 Formatting a Plot Using Commands

**144**

5.4.2 Formatting a Plot Using the Plot Editor

**148**

5.5 P LOTS WITH L OGARITHMIC A

XES **149**

5.6 P LOTS WITH E RROR B ARS

**150**

5.7 P LOTS WITH S PECIAL G RAPHICS

**152**

5.8 H

ISTOGRAMS **153**

5.9 P OLAR P LOTS

**156**

5.10 P UTTING M ULTIPLE P LOTS ON THE S AME P AGE

**157**

5.11 M ULTIPLE F

IGURE W

INDOWS

**157**

5.12 E

XAMPLES OF MATLAB A PPLICATIONS **159**

5.13 P ROBLEMS

**163**

**Contents**

## Chapter 6 Programming in MATLAB 173

6.1 R ELATIONAL AND L OGICAL O PERATORS

**174**

6.2 C ONDITIONAL S TATEMENTS

**182**

6.2.1 The if-end Structure **182**

6.2.2 The if-else-end Structure **184**

6.2.3 The if-elseif-else-end Structure **185**

6.3 T HE TATEMENT switch-case S **187**

6.4 L OOPS

**190**

6.4.1 for-end Loops **190** 6.4.2 while-end Loops **195**

6.5 N ESTED L OOPS AND N ESTED C ONDITIONAL S TATEMENTS

**198**

6.6 T HE AND OMMANDS break continue C **200**

6.7 E

XAMPLES OF MATLAB A PPLICATIONS **201**

6.8 P ROBLEMS

**209**

**Chapter 7** **User-Defined Functions and Function Files 219**

7.1 C REATING A F UNCTION F

ILE

**220**

7.2 S TRUCTURE OF A F UNCTION F

ILE

**221**

7.2.1 Function Definition Line

**222**

7.2.2 Input and Output Arguments

**222**

7.2.3 The H1 Line and Help Text Lines

**224**

7.2.4 Function Body

**224**

7.3 L OCAL AND G LOBAL

V ARIABLES

**224**

7.4 S AVING A F UNCTION F

ILE **225**

7.5 U SING A U SER -D EFINED F UNCTION

**226**

7.6 E

XAMPLES OF S

IMPLE U SER -D EFINED F UNCTIONS

**227**

7.7 C OMPARISON BETWEEN S CRIPT F

ILES AND F UNCTION F

ILES **229**

7.8 A NONYMOUS AND

I NLINE F UNCTIONS

**229**

7.8.1 Anonymous Functions

**230**

7.8.2 Inline Functions

**233**

7.9 F UNCTION F UNCTIONS

**234**

7.9.1 Using Function Handles for Passing a Function into a Function Function

**235**

7.9.2 Using a Function Name for Passing a Function into a Function Function

**238**

7.10 S UBFUNCTIONS

**240**

7.11 N ESTED F UNCTIONS

**242**

7.12 E

XAMPLES OF MATLAB A PPLICATIONS **245**

7.13 P ROBLEMS

**248**

**Chapter 8** **Polynomials, Curve Fitting, and Interpolation 261**

8.1 P OLYNOMIALS

**261**

8.1.1 Value of a Polynomial

**262**

8.1.2 Roots of a Polynomial

**263**

8.1.3 Addition, Multiplication, and Division of Polynomials

**264**

8.1.4 Derivatives of Polynomials

**266**

8.2 C URVE F

ITTING **267**

** Contents**

**8.2.1 Curve Fitting with Polynomials; The polyfit Function 267**

8.2.2 Curve Fitting with Functions Other than Polynomials

**271**

8.3 I NTERPOLATION

**274**

8.4 T HE B ASIC F

ITTING

I NTERFACE

**278**

8.5 E

XAMPLES OF MATLAB A PPLICATIONS **281**

8.6 P ROBLEMS

**286**

**Chapter 9** **Applications in Numerical Analysis 295**

9.1 S OLVING AN E QUATION WITH O NE

V ARIABLE

**295**

9.2 F

INDING A M

INIMUM OR A M AXIMUM OF A F UNCTION

**298**

9.3 N UMERICAL

I NTEGRATION

**300**

9.4 O RDINARY D

IFFERENTIAL E QUATIONS **303**

9.5 E

XAMPLES OF MATLAB A PPLICATIONS **307**

9.6 P ROBLEMS

**313**

**Chapter 10** **Three-Dimensional Plots 323**

10.1 L

INE P LOTS **323**

10.2 M ESH AND S URFACE P LOTS

**324**

10.3 P LOTS WITH S PECIAL G RAPHICS

**331**

10.4 T HE OMMAND view C **333**

10.5 E

XAMPLES OF MATLAB A PPLICATIONS **336**

10.6 P ROBLEMS

**341**

**Chapter 11** **Symbolic Math 347**

11.1 S YMBOLIC O BJECTS AND S YMBOLIC E

XPRESSIONS **348**

11.1.1 Creating Symbolic Objects

**348**

11.1.2 Creating Symbolic Expressions

**350**

11.1.3 The findsym Command and the Default Symbolic Variable

**353**

11.2 C HANGING THE F ORM OF AN E

XISTING S YMBOLIC E

XPRESSION **354**

11.2.1 The collect, expand, and factor Commands **354**

11.2.2 The simplify and simple Commands **356**

11.2.3 The pretty Command **357**

11.3 S OLVING A LGEBRAIC E QUATIONS

**358**

11.4 D

IFFERENTIATION **363**

11.5 I NTEGRATION

**365**

11.6 S OLVING AN O RDINARY D

IFFERENTIAL E QUATION **366**

11.7 P LOTTING S YMBOLIC E

XPRESSIONS **369**

11.8 N UMERICAL C ALCULATIONS WITH S YMBOLIC E

XPRESSIONS **372**

11.9 E

XAMPLES OF MATLAB A PPLICATIONS **376**

11.10 P ROBLEMS

**384** **Appendix:** **Summary of Characters, Commands, and ** **Functions 393** **Answers to Selected Problems 401** **Index 413**

**Introduction**

MATLAB is a powerful language for technical computing. The name MATLAB stands for MATrix LABoratory, because its basic data element is a matrix (array). MATLAB can be used for math computations, modeling and simulations, data analysis and processing, visualization and graphics, and algorithm development.

MATLAB is widely used in universities and colleges in introductory and advanced courses in mathematics, science, and especially engineering. In industry the software is used in research, development, and design. The standard MATLAB program has tools (functions) that can be used to solve common problems. In addition, MATLAB has optional toolboxes that are collections of specialized programs designed to solve specific types of problems. Examples include toolboxes for signal processing, symbolic calculations, and control systems.

Until recently, most of the users of MATLAB have been people with previous knowledge of programming languages such as FORTRAN and C who switched to MATLAB as the software became popular. Consequently, the majority of the literature that has been written about MATLAB assumes that the reader has knowledge of computer programming. Books about MATLAB often address advanced topics or applications that are specialized to a particular field. Today, however, MATLAB is being introduced to college students as the first (and often the only) computer program they will learn. For these students there is a need for a book that teaches MATLAB assuming no prior experience in computer programming.

**The Purpose of This Book** *MATLAB: An Introduction with Applications* is intended for students who are

using MATLAB for the first time and have little or no experience in computer programming. It can be used as a textbook in freshmen engineering courses or in workshops where MATLAB is being taught. The book can also serve as a reference in more advanced science and engineering courses where MATLAB is used as a tool for solving problems. It also can be used for self-study of MATLAB by students and practicing engineers. In addition, the book can be a supplement or a secondary book in courses where MATLAB is used but the instructor does not have the time to cover it extensively.

**Topics Covered**

MATLAB is a huge program, and therefore it is impossible to cover all of it in one book. This book focuses primarily on the foundations of MATLAB. The

**1**

** Introduction**

assumption is that once these foundations are well understood, the student will be able to learn advanced topics easily by using the information in the Help menu.

The order in which the topics are presented in this book was chosen carefully, based on several years of experience in teaching MATLAB in an introductory engineering course. The topics are presented in an order that allows the student to follow the book chapter after chapter. Every topic is presented completely in one place and then used in the following chapters.

The first chapter describes the basic structure and features of MATLAB and how to use the program for simple arithmetic operations with scalars as with a calculator. Script files are introduced at the end of the chapter. They allow the student to write, save, and execute simple MATLAB programs. The next two chapters are devoted to the topic of arrays. MATLAB’s basic data element is an array that does not require dimensioning. This concept, which makes MATLAB a very powerful program, can be a little difficult to grasp for students who have only limited knowledge of and experience with linear algebra and vector analysis. The concept of arrays is introduced gradually and then explained in extensive detail.

Chapter 2 describes how to create arrays, and Chapter 3 covers mathematical operations with arrays. Following the basics, more advanced topics that are related to script files and input and output of data are presented in Chapter 4. This is followed by coverage of two-dimensional plotting in Chapter 5. Programming with MATLAB is introduced in Chapter 6. This includes flow control with conditional statements and loops. User-defined functions, anonymous functions, and function functions are covered next in Chapter 7. The coverage of function files (user-defined functions) is intentionally separated from the subject of script files. This has proven to be easier to understand by students who are not familiar with similar concepts from other computer programs.

The next three chapters cover more advanced topics. Chapter 8 describes how MATLAB can be used for carrying out calculations with polynomials, and how to use MATLAB for curve fitting and interpolation. Chapter 9 covers applications of MATLAB in numerical analysis. It includes solving nonlinear equations, finding minimum or a maximum of a function, numerical integration, and solution of first-order ordinary differential equations. Chapter 10 describes how to produce three-dimensional plots, an extension of the chapter on two- dimensional plots. Chapter 11 covers in great detail how to use MATLAB in symbolic operations.

**The Framework of a Typical Chapter**

In every chapter the topics are introduced gradually in an order that makes the concepts easy to understand. The use of MATLAB is demonstrated extensively within the text and by examples. Some of the longer examples in Chapters 1–3 are titled as tutorials. Every use of MATLAB is printed with a different font and with a gray background. Additional explanations appear in boxed text with a white background. The idea is that the reader will execute these demonstrations and

**Introduction**

tutorials in order to gain experience in using MATLAB. In addition, every chapter includes formal sample problems that are examples of applications of MATLAB for solving problems in math, science, and engineering. Each example includes a problem statement and a detailed solution. Some sample problems are presented in the middle of the chapter. All of the chapters (except Chapter 2) have a section at the end with several sample problems of applications. It should be pointed out that problems with MATLAB can be solved in many different ways. The solutions of the sample problems are written such that they are easy to follow. This means that in many cases the problem can be solved by writing a shorter, or sometimes “trickier,” program. The students are encouraged to try to write their own solu- tions and compare the end results. At the end of each chapter there is a set of homework problems. They include general problems from math and science and problems from different disciplines of engineering.

**Symbolic Calculations**

MATLAB is essentially a software for numerical calculations. Symbolic math operations, however, can be executed if the Symbolic Math toolbox is installed. The Symbolic Math toolbox is included in the student version of the software and can be added to the standard program.

**Software and Hardware**

The MATLAB program, like most other software, is continually being developed and new versions are released frequently. This book covers MATLAB Version 7.11, Release 2010b. It should be emphasized, however, that the book covers the basics of MATLAB, which do not change much from version to version. The book covers the use of MATLAB on computers that use the Windows operating system. Everything is essentially the same when MATLAB is used on other machines. The user is referred to the documentation of MATLAB for details on using MATLAB on other operating systems. It is assumed that the software is installed on the computer, and the user has basic knowledge of operating the computer.

**The Order of Topics in the Book**

It is probably impossible to write a textbook where all the subjects are presented in an order that is suitable for everyone. The order of topics in this book is such that the fundamentals of MATLAB are covered first (arrays and array operations), and, as mentioned before, every topic is covered completely in one location, which makes the book easy to use as a reference. The order of the topics in this fourth edition of the book is a little bit different than in previous editions. Pro- gramming is introduced before user-defined functions. This allows using pro- gramming in user-defined functions. Also, applications of MATLAB in numerical analysis (now Chapter 9, previously 10) follow Chapter 8 which covers polynomi- als, curve fitting, and interpolation.

*This page intentionally left blank *

## Chapter 1 Starting with MATLAB This chapter begins by describing the characteristics and purposes of the different

windows in MATLAB. Next, the Command Window is introduced in detail. This chapter shows how to use MATLAB for arithmetic operations with scalars in a fashion similar to the way that a calculator is used. This includes the use of ele- mentary math functions with scalars. The chapter then shows how to define scalar variables (the assignment operator) and how to use these variables in arithmetic calculations. The last section in the chapter introduces script files. It shows how to write, save, and execute simple MATLAB programs.

**TARTING**

**INDOWS**

### 1.1 S MATLAB, MATLAB W

It is assumed that the software is installed on the computer, and that the user can start the program. Once the program starts, the MATLAB desktop window opens (Figure 1-1). The window contains four smaller windows: the Command Window, the Current Folder Window, the Workspace Window, and the Command History Window. This is the default view that shows four of the various windows of MAT- LAB. A list of several windows and their purpose is given in Table 1-1. The **Start** button on the lower left side can be used to access MATLAB tools and features.

Four of the windows—the Command Window, the Figure Window, the Editor Window, and the Help Window—are used extensively throughout the book and are briefly described on the following pages. More detailed descriptions are included in the chapters where they are used. The Command History Window, Current Folder Window, and the Workspace Window are described in Sections 1.2, 1.8.4, and 4.1, respectively.

**Command Window:** The Command Window is MATLAB’s main window and

opens when MATLAB is started. It is convenient to have the Command Window as the only visible window, and this can be done by either closing all the other windows (click on the **x** at the top right-hand side of the window you want to close) or by first selecting the **Desktop** **Layout** in the **Desktop** menu, and then

**5**

## Chapter 1: Starting with MATLAB

selecting **Command Window Only** from the submenu that opens. Working in the Command Window is described in detail in Section 1.2.

**Figure 1-1: The default view of MATLAB desktop.** **Table 1-1: MATLAB windows** **Window Purpose**

Command Window Main window, enters variables, runs programs. Figure Window Contains output from graphic commands. Editor Window Creates and debugs script and function files. Help Window Provides help information. Command History Window Logs commands entered in the Command Window. Workspace Window Provides information about the variables that are used. Current Folder Window Shows the files in the current folder.

**Figure Window:** The Figure Window opens automatically when graphics com-

mands are executed, and contains graphs created by these commands. An example of a Figure Window is shown in Figure 1-2. A more detailed description of this window is given in Chapter 5.

**1.1 Starting MATLAB, MATLAB Windows** **Figure 1-2: Example of a Figure Window.**

**Editor Window:** The Editor Window is used for writing and editing programs.

This window is opened from the **File** menu. An example of an Editor Window is shown in Figure 1-3. More details on the Editor Window are given in Section 1.8.2, where it is used for writing script files, and in Chapter 7, where it is used to write function files.

**Figure 1-3: Example of an Editor Window.**

**Help Window:** The Help Window contains help information. This window can

be opened from the **Help** menu in the toolbar of any MATLAB window. The Help Window is interactive and can be used to obtain information on any feature of MATLAB. Figure 1-4 shows an open Help Window.

**Chapter 1: Starting with MATLAB** **Figure 1-4: The Help Window.** When MATLAB is started for the first time the screen looks like that shown in Figure 1-1. For most beginners it is probably more convenient to close all the win-

dows except the Command Window. (Each of the windows can be closed by clicking on the button.) The closed windows can be reopened by selecting them from the **Desktop** menu. The windows shown in Figure 1-1 can be displayed by selecting first **Desktop Layout** in the **Desktop** menu and then **Default** from the submenu. The various windows in Figure 1-1 are docked to the desktop. A window can be undocked (become a separate, independent window) by clicking on the button on the upper right-hand corner. An independent window can be redocked by clicking on the button.

### 1.2 Working in the Command Window

**ORKING**

## IN THE OMMAND

**INDOW**

### 1.2 W C W

The Command Window is MATLAB’s main window and can be used for execut- ing commands, opening other windows, running programs written by the user, and managing the software. An example of the Command Window, with several sim- ple commands that will be explained later in this chapter, is shown in Figure 1-5.

To type a command the cursor is placed next to the command prompt ( >> ).

**Figure 1-5: The Command Window.** **Notes for working in the Command Window:**

To type a command the cursor must be placed next to the command prompt ( >> ). **•** Once a command is typed and the **Enter** key is pressed, the command is executed. **•** However, only the last command is executed. Everything executed previously (that might be still displayed) is unchanged.

Several commands can be typed in the same line. This is done by typing a comma **•** between the commands. When the **Enter** key is pressed the commands are exe- cuted in order from left to right. It is not possible to go back to a previous line that is displayed in the Command **•** Window, make a correction, and then re-execute the command.

A previously typed command can be recalled to the command prompt with the up- **•** arrow key ( ). When the command is displayed at the command prompt, it can be modified if needed and then executed. The down-arrow key ( ) can be used to move down the list of previously typed commands.

If a command is too long to fit in one line, it can be continued to the next line by

**•**typing three periods … (called an ellipsis) and pressing the**Enter**key. The con-

tinuation of the command is then typed in the new line. The command can con- tinue line after line up to a total of 4,096 characters.

## Chapter 1: Starting with MATLAB The semicolon ( ; ): When a command is typed in the Command Window and the Enter key is

pressed, the command is executed. Any output that the command generates is dis- played in the Command Window. If a semicolon ( ; ) is typed at the end of a com- mand the output of the command is not displayed. Typing a semicolon is useful when the result is obvious or known, or when the output is very large.

If several commands are typed in the same line, the output from any of the commands will not be displayed if a semicolon is typed between the commands instead of a comma.

**Typing %:**

When the symbol % (percent) is typed at the beginning of a line, the line is desig- nated as a comment. This means that when the **Enter** key is pressed the line is not executed. The % character followed by text (comment) can also be typed after a command (in the same line). This has no effect on the execution of the command.

Usually there is no need for comments in the Command Window. Comments, however, are frequently used in a program to add descriptions or to explain the program (see Chapters 4 and 6).

**The** clc **command:** The clc command (type clc and press **Enter**) clears the Command Window.

After working in the Command Window for a while, the display may become very long. Once the clc command is executed a clear window is displayed. The com- mand does not change anything that was done before. For example, if some vari- ables were defined previously (see Section 1.6), they still exist and can be used. The up-arrow key can also be used to recall commands that were typed before.

**The Command History Window:**

The Command History Window lists the commands that have been entered in the Command Window. This includes commands from previous sessions. A com- mand in the Command History Window can be used again in the Command Win- dow. By double-clicking on the command, the command is reentered in the Command Window and executed. It is also possible to drag the command to the Command Window, make changes if needed, and then execute it. The list in the Command History Window can be cleared by selecting the lines to be deleted and then selecting **Delete Selection** from the **Edit** menu (or right-click the mouse when the lines are selected and then choose **Delete Selection** in the menu that opens).

## RITHMETIC PERATIONS WITH CALARS

### 1.3 A O S

In this chapter we discuss only arithmetic operations with scalars, which are num- bers. As will be explained later in the chapter, numbers can be used in arithmetic calculations directly (as with a calculator) or they can be assigned to variables, which can subsequently be used in calculations. The symbols of arithmetic opera-

### 1.3 Arithmetic Operations with Scalars

tions are:

**Operation Symbol Example**

Addition + 5 + 3 Subtraction 5 – 3 –

- Multiplication 5 * 3 Right division / 5 / 3 Left division \ 5 \ 3 = 3 / 5

_{3}Exponentiation ^ 5 ^ 3 (means

5 = 125 )

It should be pointed out here that all the symbols except the left division are the same as in most calculators. For scalars, the left division is the inverse of the right division. The left division, however, is mostly used for operations with arrays, which are discussed in Chapter 3.

**1.3.1 Order of Precedence**

MATLAB executes the calculations according to the order of precedence dis- played below. This order is the same as used in most calculators.

**Precedence Mathematical Operation**

First Parentheses. For nested parentheses, the innermost are executed first. Second Exponentiation. Third Multiplication, division (equal precedence). Fourth Addition and subtraction. In an expression that has several operations, higher-precedence operations are executed before lower-precedence operations. If two or more operations have the same precedence, the expression is executed from left to right. As illustrated in the next section, parentheses can be used to change the order of calculations.

**1.3.2 Using MATLAB as a Calculator**

The simplest way to use MATLAB is as a calculator. This is done in the Com- mand Window by typing a mathematical expression and pressing the **Enter** key. MATLAB calculates the expression and responds by displaying ans = and the numerical result of the expression in the next line. This is demonstrated in Tutorial 1-1.

## Chapter 1: Starting with MATLAB Tutorial 1-1: Using MATLAB as a calculator. >> 7+8/2 Type and press Enter. ans = 8/2 is executed first.

### 11 Type and press Enter. >> (7+8)/2 ans = 7+8 is executed first. 7.5000 >> 4+5/3+2 5/3 is executed first. ans = 7.6667 >> 5^3/2 ans = 5^3 is executed first, /2 is executed next. 62.5000 >> 27^(1/3)+32^0.2

1/3 is executed first, 27^(1/3) and 32^0.2 are

**ans =** executed next, and + is executed last.

** 5** **>> 27^1/3+32^0.2**

27^1 and 32^0.2 are executed first, /3 is exe- **ans =** cuted next, and + is executed last.

** 11** **>> 0.7854-(0.7854)^3/(1*2*3)+0.785^5/(1*2*3*4*5)...** **-(0.785)^7/(1*2*3*4*5*6*7)**

Type three periods ... (and press **Enter**) to continue the expression on the next line.

**ans =** ** 0.7071**

The last expression is the first four

**>>** terms of the Taylor series for sin( π/4) .

## ISPLAY ORMATS

### 1.4 D F The user can control the format in which MATLAB displays output on the screen.

In Tutorial 1-1, the output format is fixed-point with four decimal digits (called short), which is the default format for numerical values. The format can be changed with the format command. Once the format command is entered, all the output that follows is displayed in the specified format. Several of the avail- able formats are listed and described in Table 1-2.

MATLAB has several other formats for displaying numbers. Details of these formats can be obtained by typing help format in the Command Window. The format in which numbers are displayed does not affect how MATLAB computes and saves numbers.

**1.5 Elementary Math Built-in Functions**

**>> 290/7** **ans = ** **4.142857142857143e+001**

1000 ≤ ≤ 0.001 *number*

0.001 *number*

format compact Eliminates empty lines to allow more lines with information displayed on the screen. format loose Adds empty lines (opposite of compact).

** 41.43**

**>> 290/7** **ans =** **41.4285714285714** format bank Two decimal digits. **>> 290/7** **ans =**

format long g Best of 15-digit fixed or floating point.

**>> 290/7** **ans =** ** 41.429**

format short g Best of 5-digit fixed or floating point.

format long e Scientific notation with 15 decimal digits.

**1.5 E LEMENTARY M ATH B UILT -**

**>> 290/7** **ans =** ** 4.1429e+001**

format short e Scientific notation with 4 decimal digits.

**>> 290/7** **ans =** ** 41.428571428571431**

format long Fixed-point with 15 decimal digits for: Otherwise display format long e.

**>> 290/7** **ans =** ** 41.4286**

format short Fixed-point with 4 decimal digits for: Otherwise display format short e.

**Table 1-2: Display formats** **Command Description Example**

In addition to basic arithmetic operations, expressions in MATLAB can include functions. MATLAB has a very large library of built-in functions. A function has a name and an argument in parentheses. For example, the function that calculates the square root of a number is sqrt(x). Its name is sqrt, and the argument is x. When the function is used, the argument can be a number, a variable that has been assigned a numerical value (explained in Section 1.6), or a computable expression that can be made up of numbers and/or variables. Functions can also be included in arguments, as well as in expressions. Tutorial 1-2 shows examples

**IN F UNCTIONS**

100 ≤ ≤

## Chapter 1: Starting with MATLAB

of using the function sqrt(x) when MATLAB is used as a calculator with sca- lars.

**Tutorial 1-2: Using the ** sqrt** built-in function.** **>> sqrt(64)** Argument is a number. **ans =**

** 8** **>> sqrt(50+14*3)** Argument is an expression. **ans =** ** 9.5917** **>> sqrt(54+9*sqrt(100))** Argument includes a function. **ans =**

** 12** **>> (15+600/4)/sqrt(121)** Function is included in an expression. **ans =**

** 15** **>>**

Some commonly used elementary MATLAB mathematical built-in functions are given in Tables 1-3 through 1-5. A complete list of functions organized by cat- egory can be found in the Help Window.

**Table 1-3: Elementary math functions** **Function Description Example**

Square root. **>> sqrt(81)** sqrt(x)

**ans =**

** 9** Real *n* th root of a real number *x* . **>> nthroot(80,5)**

nthroot(x,n)

**ans =**

(If *x* is negative *n* must be an

** 2.4022**

odd integer.) _{x}

**>> exp(5)**

exp(x) Exponential . ( ) *e*

**ans =** ** 148.4132**

Absolute value. **>> abs(-24)** abs(x)

**ans =**

** 24** Natural logarithm. **>> log(1000)**

log(x)

**ans =** Base *e* logarithm (ln). ** 6.9078**

Base 10 logarithm. **>> log10(1000)** log10(x)

**ans =** ** 3.0000**

**1.5 Elementary Math Built-in Functions** **Table 1-3: Elementary math functions (Continued)** **Function Description Example**

The factorial function *x*! **>> factorial(5)** factorial(x)

**ans =**

(*x* must be a positive integer.)

** 120** **Table 1-4: Trigonometric math functions** **Function Description Example**

Sine of angle *x* (*x* in radians). **>> sin(pi/6)** sin(x)

**ans =** Sine of angle *x* (*x* in degrees). sind(x)

** 0.5000**

Cosine of angle *x* (*x* in radians). **>> cosd(30)** cos(x)

**ans =** Cosine of angle *x* (*x* in degrees).

cosd(x)

** 0.8660**

Tangent of angle *x* (*x* in radians). **>> tan(pi/6)** tan(x)

**ans =** Tangent of angle *x* (*x* in degrees). tand(x)

** 0.5774** **>> cotd(30)** cot(x) Cotangent of angle ( in radians). *x x* **ans =** cotd(x) Cotangent of angle ( in degrees). *x x*

** 1.7321**

The inverse trigonometric functions are asin(x), acos(x), atan(x), acot(x) for the angle in radians; and asind(x), acosd(x), atand(x), acotd(x) for the angle in degrees. The hyperbolic trigonometric functions are sinh(x), cosh(x), tanh(x), and coth(x). Table 1-4 uses pi, which is equal to π (see Section 1.6.3).

**Table 1-5: Rounding functions** **Function Description Example**

Round to the nearest integer. **>> round(17/5)** round(x)

**ans =**

** 3** Round toward zero. **>> fix(13/5)**

fix(x)

**ans =**