TweetFollow Us on Twitter

MatLab
Volume Number:4
Issue Number:5
Column Tag:The Workstation Mac

MatLab Comes to the Mac II

By Paul Zarchan, Cambridge, Mass

Introduction

MATLAB is an interactive program to help with scientific and engineering numeric calculations. Although it was originally written in FORTRAN for mainframe computers, a second generation MATLAB was rewritten for smaller computers such as the Sun Workstation and the VAX computer. In the last few years a special version of MATLAB was developed to run on MS DOS compatable PC’s with math coprocessors. Typical uses for MATLAB are general purpose numeric computation, algorithm prototyping and solving special purpose problems with matrix formulations that arise in disciplines such as automatic control theory, statistics and digital signal processing. MATLAB is now available for the Mac II or for any Mac souped up with a 68020 accelerator board and a 68881 math coprocessor. For engineers this lends legitimacy to the claim that the Mac II is actually a workstation.

Unlike FORTRAN on the MAC, MATLAB is not really designed to make executable code (i.e. “double clickable” applications). As with interpretive BASIC, the MATLAB application is required on the disk to execute any file previously generated. Unlike BASIC, MATLAB is very fast because of the highly efficient algorithms. MATLAB allows engineers to solve problems almost as they are written mathematically and in addition allows easy access to libraries of some very powerful software. Some have called MATLAB “APL without the pain”. The Mac version of MATLAB takes full advantage of the Mac interface. This also means the MATLAB output can easily be incorporated into reports and presentations making MacMATLAB far more useful than the DOS version.

Matrix Examples

Matricies can be entered either in the MATLAB editor or by the carrot prompt by using brackets to define the matrix and semicolons to separate matrix rows. For example, by entering

»A=[1 2 3;4 5 6;7 8 0]

we get the MATLAB output on screen as

A =
     1     2     3
     4     5     6
     7     8     0

If we want to find the transpose of matrix A we simply type at the prompt

»B=A’

where the ‘ indicates transposition The resultant screen output is

B =
     1     4     7
     2     5     8
     3     6     0

Taking the matrix inverse of A is simple as typing

»inv(A)

which yields the screen output (nearly instantaneously)

ans =
   -1.7778    0.8889   -0.1111
    1.5556   -0.7778    0.2222
   -0.1111    0.2222   -0.1111

Many other matrix and linear algebra functions are available with MATLAB. Of course, many engineers have these functions built into their FORTRAN libraries - so why use MATLAB? Let’s do more examples to see why!

Polynomial Example

Suppose we had two polynomials and we wanted to multiply them and find the roots of the resultant expression. If the two polynomials were

x2+3x+2 and x2+x-12

we would define the polynomials in MATLAB by typing

»A=[1 3 2];
»B=[1 1 -12];

where the polynomials are expressed as vectors where the vector elements represent the polynomial coefficients in descending order. We can multiply the 2 polynomials algebraically in MATLAB by using the convolution function or

»C=conv(A,B)

which yields

»C =
     1     4    -7   -34   -24

The screen output displays the coefficients of the resultant polynomial in descending order. This means that the product of the 2 polynomials is given by

x4+4x3-7x2-34x-24

To find the roots of the resultant polynomial we simply type

»roots(C)

which yields the 4 roots as

ans =
    3.0000
   -4.0000
   -2.0000
   -1.0000

Still not impressed with MATLAB? Let’s look at more examples.

Plotting

Unlike FORTRAN, plotting functions come built into MATLAB. If we wanted to plot

y=sin(x) and z=.01x2 from -15 to 15 in increments of .05 only the following 4 MATLAB statements would be required

»x=-15:.05:15;
»y=sin(x);
»z=x.^2/100;
»plot(x,y,x,z)

The unenhanced screen output for such a set of commands appears in Fig. 1. Of course since MATLAB grpahical output is in the PICT format it can be copied to the clipboard and pasted into any Macintosh application.

Figure 1 - Plotting With MATLAB is Easy

The graph can be embellished within the MATLAB environment (with features similar to Cricket Graph) or copied onto the clipboard and pasted into MacDraw for further enhancement.

If we wanted to show that a 5 term Fourier series expansion for a square wave is accurate (Gibb’s effect) we only need the following 3 lines of MATLAB code.

»t = 0:.1:10;
»y = sin(t) + sin(3*t)/3 + sin(5*t)/5 + sin(7*t)/7 + sin(9*t)/9;
»plot(t,y)

The resultant unenhanced MATLAB output is shown below.

Figure 2 - MATLAB Output For Gibb’s Effect

Still not impressed? Suppose we wanted to evaluate the function

over the range

-2¾x¾2, -2¾y¾3

All we have to do is use the following 3 MATLAB statements to get a 3 dimensional plot (with all the hidden line algorithms transparent to the user) of the function.

»[x,y]=meshdom(-2:.2:2,-2:.2:3);
»z=x.*exp(-x.^2-y.^2);
»mesh(z)

Figure 3 - MATLAB 3 Dimensional Plot

Incidentally, the plot took only a few seconds to generate. Try doing that in FORTRAN!

Signal Processing

Noisy signals can be analyzed with MATLAB. For example, we can make 750 gaussian distributed random numbers with zero mean and unity standard deviation with the statements

»rand(‘normal’)
»y=rand(750,1);

We can then analyze and display the frequency content of the 750 random numbers with a MATLAB histogram statement or

»[n,x]=hist(y);
»plot(x,n,’+’)

As expected, the MATLAB output, shown in Fig. 4, demonstrates that the 750 random numbers follow the standard “bell-shaped” curve or well known gaussian distribution.

Figure 4 - MATLAB Can Make Histograms

As was mentioned in the introduction, MATLAB comes with very powerful algorithms. The next example shows a simple use of the FFT (Fast Fourier Transform) function. A common use of the FFT is to find the frequency components buried in a noisy time domain signal. Consider data sampled at 1000 Hz. We can form a signal containing 50 Hz and 120 Hz and corrupt it with gaussian noise (zero mean and unity standard deviation) with the following 5 MATLAB statements.

»t=0:.001:.5;
»x=sin(2*pi*50*t)+sin(2*pi*120*t);
»rand(‘normal’)
»y=x+2*rand(t);
»plot(y(1:50))

Figure 5 - Noisy Signal in Time Domain

It is difficult, if not impossible, to identify the frequency components by looking at the original signal in the time domain. Converting to the frequency domain, the discrete Fourier transform of the noisy signal y is found by taking the FFT. In MATLAB code this means

»Y=fft(y);

The power spectral density, a measurement of the energy at various frequencies, is:

»Pyy=Y.*conj(Y);

We can plot the power spectral density by forming a frequency axis for the first 256 points (the other 256 points are symmetric) with the MATLAB statements

»f=1000*(0:255)/512;
»plot(f,Pyy(1:256))

From the resultant output in Fig. 6 we can clearly see the frequency components at 50 Hz and 120 Hz of the signal.

Figure 6 - Frequency Domain Output

Control Analysis

MATLAB can also be used in the analysis of control systems from both a modern and classical point of view. We can find and plot the root locus of the transfer function

for gains 0 to 10 in steps of .5 with the following MATLAB statements

»num = [.2  .3  1];
»den1 = [1 .4 1];
»den2 = [1 .5];
»den = conv(den1,den2);
»k = 0:.5:10;
»r = rlocus(num,den,k); 
»plot(r,’x’), title(‘Root-locus’),xlabel(‘Real part’),ylabel(‘Imag part’)

The resultant root locus is shown in Fig. 7.

Figure 7 - Root Locus Example With MATLAB

We could find the step response for the same system by typing the additional statements

»[a,b,c,d] = tf2ss(num,den)
»t = 0:.3:15;
»y = step(a,b,c,d,1,t); 
»plot(t,y),title(‘Step response’),xlabel(‘time(sec)’)

yielding the output of Fig. 8

Figure 8 - Step Response Output

Another example of the control system analysis capability of MATLAB consider a second order quadratic transfer function with natural frequency 1 rad/sec and damping of .2. The MATLAB program required to display the magnitude characteristics is shown below and the resultant output is displayed in Fig. 9.

»[a,b,c,d]=ord2(1,.2);
»w=logspace(-1,1);
»[mag,phase]=bode(a,b,c,d,1,w);
»mag1=20*log10(mag);
»semilogx(w,mag1)

Figure 9 - Sample Magnitude Bode Plot For Quadratic Transfer Function

More Details

If you already used MATLAB in the DOS world and have a collection of many files there is no problem in porting them to the MAC. Just use a file transfer program (I used PC to MAC and Back) and the conversion routine (going from ASCII files to .m files) provided by MATLAB. The danger in doing this is that the DOS version of MATLAB will seem very primitive once you have used the MAC version. Incidentally the MAC version of MATLAB runs about 5 times faster than the IBM/AT version and at about the same speed as the Sun-3 Workstation version.

Macintosh MATLAB was developed by The Math Works, Inc. [20 N. Main St., Suite 250, Sherborn, Mass. 01770, (617)653-1415]. The software, including the signal processing toolbox comes on a single 800k disk (unprotected) with a list price of $895. The control and ientification toolboxes are sold separately - each with a list price of $495. Although this software is expensive by MAC word processing and spreadsheet standards - it is inexpensive by engineering software standards.

 
AAPL
$555.22
Apple Inc.
-1.75
MSFT
$28.73
Microsoft Corpora
-1.03
GOOG
$600.24
Google Inc.
-0.56
MacTech Search:
Community Search:

Turn The iPhone Into a Cash Register wit...
While credit card readers like Square are targeted toward end users who may want to collect occasional credit card payments, for those who are looking to make the iPhone a major part of their retail business, Cashier Live is hoping to fill that void. | Read more »
Alive4ever mini Review
Alive4ever mini Review By Angela LaFollette on May 23rd, 2012 Our Rating: :: KILL THOSE ZOMBIESiPhone App - Designed for the iPhone, compatible with the iPad Alive4ever mini brings a new game play style to the zombie killing series... | Read more »
1Card Eliminates the Need for Lugging Ar...
Doubtless most people these days carry around one or two club cards. Virtually every single retail and grocery store in existence uses them and they’re a great way to save some money with (typically) no initial cost. The only problem is having to... | Read more »
OH! Cube Review
OH! Cube Review By Jason Wadsworth on May 23rd, 2012 Our Rating: :: CUTENESS CUBEDUniversal App - Designed for iPhone and iPad Taking the picross/nonogram puzzle genre into three dimensions in an adorable way.   Developer: Auer... | Read more »
Drop the Bass Not The Cash with Bass Dro...
Want to make bass drops that are so sick, the CDC will have to declare a pandemic? Want to make dubstep so dirty that you’ll feel compelled to put on an episode of Game of Thrones just to feel clean again? Then Bass Drop is a must-download. This app... | Read more »
Kotomon Review
Kotomon Review By Kevin Stout on May 23rd, 2012 Our Rating: :: UNIQUEUniversal App - Designed for iPhone and iPad Kotomon is an action/Pokemon-ish/bowling-ish game-ish game with some unique gameplay. Ish.   | Read more »
Gourmet Pixel and Virgin Limited Edition...
Virgin Limted Edition and Gourmet Pixel have just released an iPad app for guests staying at Richard Branson’s private game reserve. The game reserve borders on Kruger National Park in South Africa’s Mpumalanga province and, while the vast majority... | Read more »

Price Scanner via MacPrices.net

Apple offering refurbished 17″ MacBook Pros for $3...
 The Apple Store has Apple Certified Refurbished 17″ 2.4GHz MacBook Pros available for $2119 including free shipping. That’s $380 off the price of new models. Apple’s one-year warranty is standard. Read more
Week’s Best MacBook Deals
We’ve posted the Week’s Best Deals on MacBook Airs and MacBook Pros for Wednesday, the 23rd of May. Find the lowest price or the best set of bundles from Apple’s Authorized Resellers with these deals... Read more
MacBook Airs on sale for up to $101 off MSRP, free...
 Adorama has MacBook Airs on sale today for up to $101 off MSRP including free shipping. NY and NJ sales tax only. Their prices are among the lowest available for these models from any Apple... Read more
Open-box special: 2.3GHz Mac mini for $493
MacMall has open-box return 2.3GHz Mac minis available for $493 including free shipping. That’s $106 off MSRP. Apple’s one-year warranty and all materials are included. Act now if you’re interested,... Read more
Apple iPhone Charger’s Secrets And Engineering Sup...
Blogger Ken Shirriff’s has posted a thoroughgoing Apple iPhone charger teardown and analysis, the one-line takeaway being: “quality in a tiny expensive package.” Shirriff says that disassembling... Read more
iPhone 5 To Get Bigger Display, LTE Support, And i...
WebProNews’s Shaylin Clark says that Apple’s new iPhone will get a larger display and a metal rear panel like the iPad’s instead of glass panel backs like the iPhone 4 and iPhone 4S have. Clark cites... Read more
weeSteady KickStarter Project Launched: Tiny Stabi...
Designer and entrepreneur Jack Campbell says his weeSteady gadget is a tiny little stabilizer for shooting video with your iPhone, small camera, or other smartphones. Campbell observes that tiny... Read more
Tablets Drive 3x More Mobile Data Traffic, 160% Mo...
Bytemobile, Inc. has published its quarterly Mobile Analytics Report for May 2012. Now in its third year, the Mobile Analytics Report provides insight into subscriber behavior and related factors... Read more

Jobs Board

*Apple* Solutions Consultant-Retail Sal...
The Apple Solutions Consultant (ASC) is an Apple employee who oversees the sales, merchandising, and operations of an Apple Store-in-a-Store in a single unit Read more
Events App - iPhone at Elance.com (Louis...
I would like to create an events app for iPhone, Android and Blackberry. This would basically be a calendar that users could access which would have all of the local events in their area on it. This... Read more
*Apple* Retail - Sales - Apple Inc. (Un...
…other. As a Specialist, you're the essence of a customer's experience at the Apple Retail Store. You enrich people's lives through meaningful dialogue about the coolest Read more
Create an app for Iphone - Iphone app de...
I would like to develop an APP for the Iphone that would act as an on/off button for a device that would be plugged into ... be the picture of a flame that you would press and it would activate the... Read more
iOS Developer (iPhone and iPad) at Mahal...
Mahalo is on a mission to help the world quotLearn Anythingquot by creating high quality educational content available on mobile devices. Were looking to disrupt the education industry in a big way.... Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.