<< Chapter < Page Chapter >> Page >
User-defined functions as distinct from the basic MATLAB functions which are part of the MATLAB package. An m-procedure (or sometimes a procedure) is an m-file containing a set of MATLAB commands which carry out a prescribed set of operation

We use the term m-function to designate a user-defined function as distinct from the basic MATLAB functions which are part of the MATLAB package. For example,the m-function minterm produces the specified minterm vector. An m-procedure (or sometimes a procedure ) is an m-file containing a set of MATLAB commands which carry out a prescribed set of operations. Generally, these will prompt for (or assume) certain data upon whichthe procedure is carried out. We use the term m-program to refer to either an m-function or an m-procedure.

In addition to the m-programs there is a collection of m-files with properly formatted data which can be entered into the workspace by calling the file.

Although the m-programs were written for MATLAB version 4.2, they work for versions 5.1, 5.2, and 7.04. The latter versions offer some new features which may make more efficientimplementation of some of the m-programs, and which make possible some new ones. With one exception (so noted), these are not explored in this collection.

Matlab features

Utilization of MATLAB resources is made possible by a systematic analysis of some features of the basic probability model. In particular, the minterm analysis oflogical (or Boolean) combinations of events and the analysis of the structure of simple random variables with the aid of indicator functions and minterm analysisare exploited.

A number of standard features of MATLAB are utilized extensively. In addition to standard matrix algebra, we use:

  1. Array arithmetic. This involves element by element calculations. For example, if a, b are matrices of the same size, then a.*b is the matrix obtained by multiplying corresponding elements in the two matrices to obtain a new matrix ofthe same size.
  2. Relational operations, such as less than, equal, etc. to obtain zero-one matrices with ones at element positions where the conditions are met.
  3. Logical operations on zero-one matrices utilizing logical operators and , or , and not , as well as certain related functions such as any , all , not , find , etc. Note . Relational operations and logical operations produce zero-one arrays, called logical arrays , which MATLAB treats differently from zero-one numeric arrays . A rectangular array in which some rows are logical arrays but others are not is treated as a numeric array.Any zero-one rectangular array can be converted to a numeric array (matrix) by the command A = ones(size(A)).*A ,
  4. Certain MATLAB functions, such as meshgrid, sum, cumsum, prod, cumprod are used repeatedly. The function dot for dot product does not work if either array is a logical array. If one of the pair is numeric, the command C = A*B'will work.

Auxiliary user-defined building blocks

One of the most useful is a special sorting and consolidation operation implemented in the m-function csort . A standard problem arises when each of a non distinct set of values has an associated probability. To obtain the distribution, it is necessary to sort the values and add the probabilities associated with each distinct value. Thefollowing m-function achieves these operations: function [t,p]= csort(T,P). T and P are matrices with the same number of elements. Values of T are sorted and identical values are consolidated; values of P corresponding to identical values of T are added. A number of derivative functions and procedures utilize csort. The following twoare useful.

function [t,p] = csort(T,P)% CSORT [t,p] = csort(T,P) Sorts T, consolidates P% Version of 4/6/97 % Modified to work with Versions 4.2 and 5.1, 5.2% T and P matrices with the same number of elements % The vector T(:)' is sorted:% * Identical values in T are consolidated; % * Corresponding values in P are added.T = T(:)'; n = length(T);[TS,I] = sort(T);d = find([1,TS(2:n) - TS(1:n-1)>1e-13]); % Determines distinct valuest = TS(d); % Selects the distinct values m = length(t) + 1;P = P(I); % Arranges elements of P F = [0 cumsum(P(:)')]; Fd = F([d length(F)]); % Cumulative sums for distinct values p = Fd(2:m) - Fd(1:m-1); % Separates the sums for these values
Got questions? Get instant answers now!

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Applied probability. OpenStax CNX. Aug 31, 2009 Download for free at http://cnx.org/content/col10708/1.6
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Applied probability' conversation and receive update notifications?

Ask