Update cookies preferences

E-book: MATLAB Programming for Biomedical Engineers and Scientists

(Head of Imaging Science, Perspectum Ltd.), (Reader in Medical Image Analysis, School of Biomedical Engineering and Imaging Science, King's College London.)
  • Format: PDF+DRM
  • Pub. Date: 24-May-2022
  • Publisher: Academic Press Inc
  • Language: eng
  • ISBN-13: 9780323984577
  • Format - PDF+DRM
  • Price: 58,68 €*
  • * the price is final i.e. no additional discount will apply
  • Add to basket
  • Add to Wishlist
  • This ebook is for personal use only. E-Books are non-refundable.
  • Format: PDF+DRM
  • Pub. Date: 24-May-2022
  • Publisher: Academic Press Inc
  • Language: eng
  • ISBN-13: 9780323984577

DRM restrictions

  • Copying (copy/paste):

    not allowed

  • Printing:

    not allowed

  • Usage:

    Digital Rights Management (DRM)
    The publisher has supplied this book in encrypted form, which means that you need to install free software in order to unlock and read it.  To read this e-book you have to create Adobe ID More info here. Ebook can be read and downloaded up to 6 devices (single user with the same Adobe ID).

    Required software
    To read this ebook on a mobile device (phone or tablet) you'll need to install this free app: PocketBook Reader (iOS / Android)

    To download and read this eBook on a PC or Mac you need Adobe Digital Editions (This is a free app specially developed for eBooks. It's not the same as Adobe Reader, which you probably already have on your computer.)

    You can't read this ebook with Amazon Kindle

MATLAB Programming for Biomedical Engineers and Scientists, Second Edition provides an easy-to-learn introduction to the fundamentals of computer programming in MATLAB. The book explains the principles of good programming practice, while also demonstrating how to write efficient and robust code that analyzes and visualizes biomedical data. Aimed at the biomedical engineering student, biomedical scientist and medical researcher with little or no computer programming experience, this is an excellent resource for learning the principles and practice of computer programming using MATLAB.

The book enables the reader to analyze problems and apply structured design methods to produce elegant, efficient and well-structured program designs, implement a structured program design in MATLAB, write code that makes good use of MATLAB programming features, including control structures, functions and advanced data types, and much more.

  • Presents many real-world biomedical problems and data, showing the practical application of programming concepts
  • Contains two whole chapters dedicated to the practicalities of designing and implementing more complex programs
  • Provides an accompanying website with freely available data and source code for the practical code examples, activities and exercises in the book
  • Includes new chapters on machine learning, engineering mathematics, and expanded coverage of data types
About The Authors xv
Preface xvii
Acknowledgments xxiii
Chapter 1 Introduction to computer programming and MATLAB®
1(34)
1.1 Introduction
1(1)
1.2 Computers and computer programming
2(1)
1.3 MATLAB
3(1)
1.4 The MATLAB environment
4(2)
1.5 Help
6(1)
1.6 Variables, arrays, and simple operations
6(6)
1.6.1 MATLAB variables
6(1)
1.6.2 Variable names
7(1)
1.6.3 Built-in MATLAB functions
8(1)
1.6.4 Creating and manipulating arrays
8(2)
1.6.5 Regularly-spaced arrays
10(1)
1.6.6 Accessing array elements
10(1)
1.6.7 Array functions
11(1)
1.7 Matrices
12(4)
1.8 Datatypes
16(2)
1.9 Loading and saving data
18(1)
1.10 Visualizing data
19(2)
1.11 Curve fitting
21(1)
1.12 MATLAB scripts
22(3)
1.13 Comments
25(1)
1.14 Debugging
26(3)
1.14.1 MATLAB debugger
26(2)
1.14.2 MATLAB code analyzer
28(1)
1.15 Summary
29(1)
1.16 Further resources
30(1)
1.17 Exercises
30(5)
Chapter 2 Control structures
35(28)
2.1 Introduction
35(1)
2.2 Conditional if statements
35(4)
2.3 Comparison/logical operators
39(3)
2.4 Conditional switch statements
42(3)
2.5 Iteration: for loops
45(4)
2.6 Iteration: while loops
49(2)
2.7 A note about efficiency
51(1)
2.8 Break and continue
52(2)
2.9 Nesting control structures
54(1)
2.10 Summary
55(1)
2.11 Further resources
55(1)
2.12 Exercises
55(8)
Chapter 3 Basic data types
63(30)
3.1 Introduction
63(1)
3.2 What is a data type?
63(1)
3.3 Numeric types
64(9)
3.4 The Boolean data type
73(2)
3.4.1 Logical indexing
74(1)
3.5 Characters and character arrays
75(6)
3.5.1 The string type
78(2)
3.5.2 Built-in MATLAB functions
80(1)
3.6 Identifying the type of a variable
81(1)
3.7 Converting between types
82(5)
3.7.1 Converting between a number and a character
82(1)
3.7.2 Converting between a number and a logical type
83(1)
3.7.3 Converting arrays
84(3)
3.8 Summary
87(1)
3.9 Further resources
87(1)
3.10 Exercises
88(5)
Chapter 4 Functions
93(30)
4.1 Introduction
93(1)
4.2 Functions
93(6)
4.3 Checking for errors
99(2)
4.4 Function m-files and script m-files
101(2)
4.5 The return keyword
103(1)
4.6 A function m-file can contain more than one function
104(1)
4.7 Script m-files and functions
105(1)
4.8 M-files and the MATLAB search path
106(2)
4.9 Naming rules
108(1)
4.10 Scope of variables
108(3)
4.11 Recursion: a function calling itself
111(1)
4.12 Summary
112(1)
4.13 Further resources
113(1)
4.14 Exercises
113(10)
Chapter 5 Program development and testing
123(28)
5.1 Introduction
123(1)
5.2 Incremental development
123(7)
5.3 Are we finished? Validating user input
130(1)
5.4 Debugging a function
131(7)
5.5 Common reasons for errors when running a script or a function
138(1)
5.6 Error handling
139(2)
5.6.1 The error and warning functions
139(1)
5.6.2 The try and catch method
140(1)
5.7 Summary
141(1)
5.8 Further resources
141(1)
5.9 Exercises
142(9)
Chapter 6 Advanced data types
151(24)
6.1 Introduction
151(1)
6.2 Cells and cell arrays
151(4)
6.3 Structures
155(3)
6.4 Categorical arrays
158(3)
6.5 Tables
161(2)
6.6 Maps
163(5)
6.7 Conversion of advanced data types
168(1)
6.8 Summary
168(1)
6.9 Further resources
169(1)
6.10 Exercises
169(6)
Chapter 7 File input/output
175(20)
7.1 Introduction
175(1)
7.2 Recap on basic input/output functions
175(1)
7.3 Simple functions for dealing with text files
176(2)
7.4 Reading from files
178(9)
7.5 Writing to files
187(3)
7.6 Summary
190(1)
7.7 Further resources
191(1)
7.8 Exercises
191(4)
Chapter 8 Program design
195(16)
8.1 Introduction
195(1)
8.2 Top-down design
196(7)
8.2.1 Incremental development and test stubs
202(1)
8.3 Bottom-up design
203(1)
8.4 A combined approach
204(1)
8.5 Alternative design approaches
204(1)
8.6 Summary
205(1)
8.7 Further resources
206(1)
8.8 Exercises
206(5)
Chapter 9 Visualization
211(22)
9.1 Introduction
211(1)
9.2 Visualization
211(15)
9.2.1 Pie charts
212(1)
9.2.2 Visualizing multiple datasets
213(4)
9.2.3 3-D plotting
217(4)
9.2.4 The meshgrid command
221(2)
9.2.5 Modifying axis limits
223(1)
9.2.6 Imaging data
224(2)
9.3 Summary
226(1)
9.4 Further resources
227(1)
9.5 Exercises
227(6)
Chapter 10 Code efficiency
233(28)
10.1 Introduction
233(1)
10.2 Time and memory efficiency
233(5)
10.2.1 Timing commands in MATLAB
235(1)
10.2.2 Assessing memory efficiency
236(2)
10.3 Tips for improving time-efficiency
238(7)
10.3.1 Pre-allocating arrays
238(1)
10.3.2 Avoiding loops
239(3)
10.3.3 Logical indexing
242(2)
10.3.4 A few more tips for efficient code
244(1)
10.4 Recursive and dynamic programming
245(6)
10.4.1 A note on the depth of recursive function calls
250(1)
10.5 Dynamic programming to improve performance
251(2)
10.6 Summary
253(1)
10.7 Further resources
254(1)
10.8 Exercises
254(7)
Chapter 11 Signal and image processing
261(34)
11.1 Introduction
261(1)
11.2 Storing and reading 1-D signals
262(1)
11.3 Processing 1-D signals
263(1)
11.4 Convolution
264(8)
11.4.1 Convolution: more detail
269(3)
11.5 Storing and reading image data
272(1)
11.6 Accessing images in MATLAB
273(4)
11.6.1 Color versus gray scale images
273(1)
11.6.2 Getting information about an image
273(2)
11.6.3 Viewing an image
275(1)
11.6.4 Accessing the pixel data for an image
276(1)
11.6.5 Viewing and saving a sub-region of an image
276(1)
11.7 Image processing
277(5)
11.7.1 Binarizing a gray scale image and saving. the result
277(2)
11.7.2 Threshold-based operations
279(1)
11.7.3 Chaining operations
280(1)
11.7.4 Image data type, value range, and display
281(1)
11.8 Image filtering
282(6)
11.8.1 The mean filtering operation
283(1)
11.8.2 The actual filter used
284(1)
11.8.3 Applying a filter in MATLAB
285(2)
11.8.4 Filtering and convolution
287(1)
11.9 Summary
288(1)
11.10 Further resources
288(1)
11.11 Exercises
289(6)
Chapter 12 Graphical user interfaces
295(28)
12.1 Introduction
295(1)
12.2 Building a graphical user interface in MATLAB
295(19)
12.2.1 Building a GUI with the MATLAB App Designer tool
296(4)
12.2.2 Controlling components: events and callback functions
300(7)
12.2.3 Maintaining state: avoiding duplicated code
307(5)
12.2.4 Keeping track of a property when maintaining state
312(2)
12.3 Building an app: recap
314(1)
12.4 An app for image processing
315(1)
12.5 Summary
316(1)
12.6 Further resources
317(1)
12.7 Exercises
317(6)
Chapter 13 Statistics
323(20)
13.1 Introduction
323(1)
13.2 Descriptive statistics
324(6)
13.2.1 Univariate data
324(1)
13.2.2 Bivariate data
325(5)
13.3 Inferential statistics
330(7)
13.3.1 Testing the distributions of data samples
330(2)
13.3.2 Comparing data samples
332(5)
13.4 Summary
337(1)
13.5 Further resources
338(1)
13.6 Exercises
339(4)
Chapter 14 Machine learning
343(30)
14.1 Introduction
343(1)
14.2 Artificial intelligence, machine learning, and deep learning
344(1)
14.3 Types of machine learning
345(1)
14.4 Evaluating machine learning models
345(2)
14.5 Overfitting and underfitting
347(1)
14.6 Unsupervised learning
348(7)
14.6.1 Clustering
348(4)
14.6.2 Dimensionality reduction
352(3)
14.7 Supervised learning
355(8)
14.7.1 Classification
356(4)
14.7.2 Regression
360(3)
14.8 Deep learning
363(4)
14.9 Summary
367(2)
14.10 Further resources
369(1)
14.11 Exercises
369(4)
Chapter 15 Engineering mathematics
373(54)
15.1 Introduction
373(1)
15.2 Scalars and vectors
373(5)
15.3 Complex numbers
378(8)
15.3.1 Time-varying signals
385(1)
15.4 Matrices
386(14)
15.4.1 Matrix structure
386(2)
15.4.2 Matrix operations
388(12)
15.5 Calculus
400(18)
15.5.1 Differentiation
400(11)
15.5.2 Integration
411(6)
15.5.3 Calculus summary
417(1)
15.6 Differential equations
418(4)
15.7 Summary and further resources
422(1)
15.8 Exercises
422(5)
References 427(2)
Index 429
Dr King has over 20 years of experience of teaching computing courses at university level. He is currently a Reader in the Biomedical Engineering department at King's College London. With Paul Aljabar, he designed and developed the Computer Programming module for Biomedical Engineering students upon which this book was based. The module has been running since 2014 and Andrew still co-organises and teaches on it. Between 2001-2005, Andrew worked as an Assistant Professor in the Computer Science department at Mekelle University in Ethiopia, and was responsible for curriculum development, and design and delivery of a number of computing modules. Andrew's research interests focus mainly on the use of machine learning and artificial intelligence techniques to tackle problems in medical imaging, with a special focus on dynamic imaging data, i.e. moving organs (Google Scholar: https://goo.gl/ZZGrGr, group web site: http://kclmmag.org). Paul Aljabar is a mathematician who enjoys using computer programming to address health and biomedical problems. He taught high school mathematics in London for twelve years before taking up a research career. Since then, his work has focused on the analysis of large collections of medical images for a range of applications, for example in order to build anatomical atlases or distinguish normal from pathological physiology. As described above, Paul and Andrew developed this book and learning materials together while teaching Biomedical Engineering undergraduates. Paul has taught on a range of undergraduate and graduate programmes focusing on the analysis and interpretation of medical and biomedical data, carried out through modelling, programming, and the application of methods that are also used in his research (Google Scholar: https://goo.gl/jAgPru).