13 of 14 people found the following review helpful
Amber M. Anderson
- Published on Amazon.com
Vine Customer Review of Free Product
First a disclaimer: I chose to receive this textbook to review from the Vine program, meaning I got it for free. I am an Electrical Engineer and I like to have references for the different languages I use at work...not having one for MATLAB, I thought this would be nice to try.
Here's my review:
This book is exactly what it claims to be: an introduction to MATLAB. All in all, it appears to be a very well written textbook (I already know MATLAB so I can't say I tried learning with this book, but I did browse through it and read some sections in detail and it was a very good reminder and seemed easy to follow and understand).
The book does a fantastic job of describing the different functions and terms it covers. It also is filled with useful smatterings of actual MATLAB syntax and code including at times alternate methods for achieving the same output. Code examples are good and text explaining them are very easy to read and follow. Well written for what is essentially a programming book!
The table of contents is well organized and descriptive, making it easy to skip around the book looking for specific topics. Index is decent...could stand a tad more detail, but acceptable.
The preface makes a good point - the book seeks to explain both the use of functions and the programming concepts. I can't say it's completely unique to approach MATLAB this way, but it is, in my mind, the preferable way to do it. Using functions alone doesn't leave you much flexibility when you are faced with something more complex and need to actually write useful programs or something not directly correlating to a function. But not knowing the functions really cripples your productivity.
The book also touches briefly on some of the more advanced concepts in MATLAB (even 3D plots, animation, sound and image processing). Not enough to really use these super effectively without another reference, but enough to try at least simple versions and to know that it exists as an option, which for an intro book is quite acceptable and nice that it bothers at all.
I do like the practice features in the text - most of them basically have you pen and paper what you think the output of things will be and then go into MATLAB to check your answers. It seems a little trivial to have to be solving math equations by hand until you realize it's a great way to make sure that you both understand the math and the MATLAB. If they don't agree you did one or the other wrong! I liked this idea quite a lot for both students and myself : Good review of both language and math.
As for the problems in the text, reading them, they seem useful. Some are very easy seeeming and some really do require you to think (the later chapters basically make you write a complete program). I didn't try them honestly, but at least they are clear - I don't have too many questions understanding what they want which is very good for a textbook. Without an answer manual, these aren't as useful to me though since I could do the problem, but not really check my work unless I did it by hand as well (which is why I think the set-up/suggestion in the book for how to do the practice problems is so great).
I did knock it down to four stars for a few things though that made it a little less useful as a reference in my mind (and in my mind any good textbook should be judged this way...even if you buy it for class, you want to be able to turn to it years later as a reference).
First - I understand MATLAB has a VERY good help feature that explains almost any function. But that's only really helpful if you know to bother looking for the function in the first place. One of the most useful things any programming book can have for me is a library/list of all the functions with a brief explanation of any variables. Then when I'm programming I can scan the list looking for, say, anything with "matrix" in it if I know I'm going to be using matrixes. Sometimes just seeing the name of a function is really useful to me to let me know that "hey, the language has a function for this!"
This book doesn't have that. A great deal of the functions are described in the text, but there is no list that I've found in it. If you find one, point it out to me in a comment please, but flipping through it, if there is one I totally overlooked it). In some of the sections, additional functions are mentioned beyond those that are explicitly explained, which is good, but the variables and syntax are not explained which is also too bad...although with MATLAB's help I could figure it out if I need to.
Second - In my courses (I have a Master's in Robotic Controls) I had to use a lot of toolboxes and do in work as well. Toolboxes are basically the MATLAB version of additional software add-ons (kind of like libraries in other languages) which give you additional functions you can call. The basic student edition of MATLAB software doesn't come with any toolboxes (at least it didn't used to) and toolboxes are expensive, but I still find it quite unfortunate that I couldn't find any mention of toolboxes in this book. It would be really nice to get a list of the toolboxes available for MATLAB and a brief description of what each covers (a paragraph or two). In my mind an intro book is a great place to put info like this...it tells you were to turn next if you need to head off in some more detailed direction after you grab the basics.
I'll update the review if I discover more...at this point the reading is as described - looking at the index and table of contents, browse of most most of it, and in depth reading of a few sections (notably the preface, "is" functions, scripts, loops, advanced tops, maxix representation, and sound and image processing)
3 of 3 people found the following review helpful
- Published on Amazon.com
I was fortunate enough to have taken the Matlab course taught by the author of this book this past semester. I have to say, not only is Dr. Attaway one of the best professors I have had, this book was one of the best texts I have used and was nearly perfect for the use for which it was intended.
That being said, some explanation should be given about the book's intended audience. Professor Attaway's course itself is something of a hybrid in that it introduces basic linear algebra, the fundamentals of programming and Matlab all within one semester. The book mirrors the course's objectives and thus is something different than a primer on Matlab (which it can still easily be used for)
The book assumes little to no programming or Matlab experience on the part of the reader. You start at the very beginning, briefly learning the barest essentials of the Matlab interface, basically enough to whet your appetite. One thing I haven't like about other programming books is that they are frequently organized so that you learn everything there is to know about a specific topic, from the very basic to the most arcane aspects, before moving on to the next one. Dr. Attaway's approach is to introduce just enough of what you need to undertake specific objectives at a basic level, and then later, sometimes much later, work into the more complex areas of a topic. So, you might learn a little about simple file input/ouput near the beginning of the book to do some basic file saving, loading, etc. and then revisit the topic much later in the book to really get into the nitty-gritty, higher level stuff. In this manner, you acquire skills and understanding in a way that feels more natural and more relevant to the material, and certainly easier than trying to learn Matlab using many of the books I've read or worse, trying to learn via the Matlab documentation. (This is no slam on Matlab's documentation. It's wonderfully complete and detailed, but it's a horrible way to learn the software). The best parts of this book are the chapters on sight and sound,( where she gives great explanations on GUIs, images and sound files),advanced functions and advanced file input output. I did try to learn Matlab on my own before taking this class. I found these topics covered in other books and I just couldn't didn't understand them clearly until I read this book.
And as I stated earlier, you do start on the road to programming with this book. Having had to teach myself programming, from scratch, I can honestly say that I wish that I had this book and the Matlab software around to help me get started. The basics of programming are the same for pretty much any language: C++, Fortran, Java, etc. They all use variables, loops, file input/output, and so on. Matlab is a great introduction to programming because: compiling is easier (you are not involved in the process!), the results are more immediately useful and some of the commands are very similar to what is used in C++. Dr. Attaway's book meshes the two subjects, Matlab and programming, together very nicely.
Dr. Attaway does not delve into mathematics a great deal. None of the topics, including linear algebra, are given a great deal of airtime. Mostly, she just shows you that, yes, Matlab is quite capable of solving simultaneous equations so you don't have to do it by hand. Most of the other math topics are very generic introductions, so if you need something more complete, look elsewhere.
The writing in this book is succinct but still feels complete. There is little extraneous prose on the pages, but the details are explained well without coming across as dry or boring. We covered almost all of the 15 chapters of this book in one semester and I never felt rushed or overwhelmed by the amount of material in the book. Dr. Attaway does her best to give the reader practice problems that cover a wide spectrum of difficulty levels, from the simple to the very challenging. Many of the problems are based on real engineering problems, though distilled to a level approachable to a first year engineering student.
To some people, the book may not feel comprehensive enough. It is not intended, at all, to be comprehensive. For a beginner, though, I feel like it is the best starting point for learning Matlab and probably one of the best starting points to learn programming.