Page 108 - Basics of MATLAB and Beyond
P. 108

ans(:,:,2)   =
                                    9
                                    9
                                    9
                               And to sum over “pages”:

                               >> sum(a,3)
                               ans  =
                                    4     5      6
                                    7     8      9
                                   10    11     12
                               Note that sum(a) is equal to sum(a,1). The sum over “pages” gives a
                               3 × 3 matrix, which is the same as a 3 × 3 × 1 matrix.
                                  The sum function and other functions that operate on vectors, like
                               mean, diff, max, and so on, work as you might expect them to for multi-
                               dimensional arrays. By default they usually operate on the first non-
                               singleton dimension of the array. Many functions that operate on two-
                               dimensional matrices do not have such straightforward multidimensional
                               extensions. For example, if we try to take the transpose of our matrix:
                               >> a’
                               ??? Error using   =  = > ’
                               Transpose on ND array is not defined.
                               The transpose operation (exchanging rows and columns) makes no sense
                               here because it is insufficiently specified. (If you want to rearrange a
                               multidimensional array’s dimensional ordering, use the permute func-
                               tion; in our example, try permute(a,[2 1 3])). Another example is
                               the eigenvalue operator eig, which has no mathematical meaning for
                               multidimensional arrays. In fact, none of the functions that appear if
                               you type help matfun has a reasonable meaning for multidimensional
                               matrices. Nor do the matrix operators *, ^, \ or /.


                               29.3   RGB Images
                               Introduction to RGB Images
                               RGB images in matlab are M ×N ×3 matrices consisting of red, green,
                               and blue intensity maps. When such a three-dimensional matrix is used
                               as an input to the image command, matlab adds the red, green, and
                               blue intensities to give the right colours on the screen. To illustrate the
                               idea, our first example reproduces three overlapped discs of red, green,
                               and blue light to give yellow, cyan, magenta, and white overlaps. We
                               generate matrices of (x, y) points covering the plane from −2to2:

                               [x,y] = meshgrid(linspace(-2,2,200));



                               c   2000 by CRC Press LLC
   103   104   105   106   107   108   109   110   111   112   113