|
|
1.1 ! root 1: HELP is available ! 2: ! 3: NEWS MATLAB NEWS dated 9/15/83. ! 4: HELP is now a lot faster. ! 5: ! 6: INTRO Welcome to MATLAB. ! 7: ! 8: Here are a few sample statements: ! 9: ! 10: A = <1 2; 3 4> ! 11: b = <5 6>' ! 12: x = A\b ! 13: <V,D> = eig(A), norm(A-V*D/V) ! 14: help \ , help eig ! 15: exec('demo',7) ! 16: ! 17: For more information, see the MATLAB Users' Guide which is ! 18: contained in file ... or may be obtained from ... . ! 19: ! 20: < < > Brackets used in forming vectors and matrices. ! 21: <6.9 9.64 SQRT(-1)> is a vector with three elements ! 22: separated by blanks. <6.9, 9.64, sqrt(-1)> is the same ! 23: thing. <1+I 2-I 3> and <1 +I 2 -I 3> are not the same. ! 24: The first has three elements, the second has five. ! 25: <11 12 13; 21 22 23> is a 2 by 3 matrix . The semicolon ! 26: ends the first row. ! 27: ! 28: Vectors and matrices can be used inside < > brackets. ! 29: <A B; C> is allowed if the number of rows of A equals ! 30: the number of rows of B and the number of columns of A ! 31: plus the number of columns of B equals the number of ! 32: columns of C . This rule generalizes in a hopefully ! 33: obvious way to allow fairly complicated constructions. ! 34: ! 35: A = < > stores an empty matrix in A , thereby removing it ! 36: from the list of current variables. ! 37: ! 38: For the use of < and > on the left of the = in multiple ! 39: assignment statements, see LU, EIG, SVD and so on. ! 40: ! 41: In WHILE and IF clauses, <> means less than or greater ! 42: than, i.e. not equal, < means less than, > means greater ! 43: than, <= means less than or equal, >= means greater than or ! 44: equal. ! 45: ! 46: For the use of > and < to delineate macros, see MACRO. ! 47: ! 48: > See < . Also see MACRO. ! 49: ! 50: ( ( ) Used to indicate precedence in arithmetic expressions ! 51: in the usual way. Used to enclose arguments of functions ! 52: in the usual way. Used to enclose subscripts of vectors ! 53: and matrices in a manner somewhat more general than the ! 54: usual way. If X and V are vectors, then X(V) is ! 55: <X(V(1)), X(V(2)), ..., X(V(N))> . The components of V ! 56: are rounded to nearest integers and used as subscripts. An ! 57: error occurs if any such subscript is less than 1 or ! 58: greater than the dimension of X . Some examples: ! 59: X(3) is the third element of X . ! 60: X(<1 2 3>) is the first three elements of X . So is ! 61: X(<SQRT(2), SQRT(3), 4*ATAN(1)>) . ! 62: If X has N components, X(N:-1:1) reverses them. ! 63: The same indirect subscripting is used in matrices. If V ! 64: has M components and W has N components, then A(V,W) ! 65: is the M by N matrix formed from the elements of A whose ! 66: subscripts are the elements of V and W . For example... ! 67: A(<1,5>,:) = A(<5,1>,:) interchanges rows 1 and 5 of A . ! 68: ! 69: ) See ( . ! 70: ! 71: = Used in assignment statements and to mean equality in WHILE ! 72: and IF clauses. ! 73: ! 74: . Decimal point. 314/100, 3.14 and .314E1 are all the ! 75: same. ! 76: ! 77: Element-by-element multiplicative operations are obtained ! 78: using .* , ./ , or .\ . For example, C = A ./ B is the ! 79: matrix with elements c(i,j) = a(i,j)/b(i,j) . ! 80: ! 81: Kronecker tensor products and quotients are obtained with ! 82: .*. , ./. and .\. . See KRON. ! 83: ! 84: Two or more points at the end of the line indicate ! 85: continuation. The total line length limit is 1024 ! 86: characters. ! 87: ! 88: , Used to separate matrix subscripts and function arguments. ! 89: Used at the end of FOR, WHILE and IF clauses. Used to ! 90: separate statements in multi-statement lines. In this ! 91: situation, it may be replaced by semicolon to suppress ! 92: printing. ! 93: ! 94: ; Used inside brackets to end rows. ! 95: Used after an expression or statement to suppress printing. ! 96: See SEMI. ! 97: ! 98: \ Backslash or matrix left division. A\B is roughly the ! 99: same as INV(A)*B , except it is computed in a different ! 100: way. If A is an N by N matrix and B is a column vector ! 101: with N components, or a matrix with several such columns, ! 102: then X = A\B is the solution to the equation A*X = B ! 103: computed by Gaussian elimination. A warning message is ! 104: printed if A is badly scaled or nearly singular. ! 105: A\EYE produces the inverse of A . ! 106: ! 107: If A is an M by N matrix with M < or > N and B is a ! 108: column vector with M components, or a matrix with several ! 109: such columns, then X = A\B is the solution in the least ! 110: squares sense to the under- or overdetermined system of ! 111: equations A*X = B . The effective rank, K, of A is ! 112: determined from the QR decomposition with pivoting. A ! 113: solution X is computed which has at most K nonzero ! 114: components per column. If K < N this will usually not be ! 115: the same solution as PINV(A)*B . ! 116: A\EYE produces a generalized inverse of A . ! 117: ! 118: If A and B have the same dimensions, then A .\ B has ! 119: elements a(i,j)\b(i,j) . ! 120: ! 121: Also, see EDIT. ! 122: ! 123: / Slash or matrix right division. B/A is roughly the same ! 124: as B*INV(A) . More precisely, B/A = (A'\B')' . See \ . ! 125: ! 126: IF A and B have the same dimensions, then A ./ B has ! 127: elements a(i,j)/b(i,j) . ! 128: ! 129: Two or more slashes together on a line indicate a logical ! 130: end of line. Any following text is ignored. ! 131: ! 132: ' Transpose. X' is the complex conjugate transpose of X . ! 133: Quote. 'ANY TEXT' is a vector whose components are the ! 134: MATLAB internal codes for the characters. A quote within ! 135: the text is indicated by two quotes. See DISP and FILE . ! 136: ! 137: + Addition. X + Y . X and Y must have the same dimensions. ! 138: ! 139: - Subtraction. X - Y . X and Y must have the same ! 140: dimensions. ! 141: ! 142: * Matrix multiplication, X*Y . Any scalar (1 by 1 matrix) ! 143: may multiply anything. Otherwise, the number of columns of ! 144: X must equal the number of rows of Y . ! 145: ! 146: Element-by-element multiplication is obtained with X .* Y . ! 147: ! 148: The Kronecker tensor product is denoted by X .*. Y . ! 149: ! 150: Powers. X**p is X to the p power. p must be a ! 151: scalar. If X is a matrix, see FUN . ! 152: ! 153: : Colon. Used in subscripts, FOR iterations and possibly ! 154: elsewhere. ! 155: J:K is the same as <J, J+1, ..., K> ! 156: J:K is empty if J > K . ! 157: J:I:K is the same as <J, J+I, J+2I, ..., K> ! 158: J:I:K is empty if I > 0 and J > K or if I < 0 and J < K . ! 159: The colon notation can be used to pick out selected rows, ! 160: columns and elements of vectors and matrices. ! 161: A(:) is all the elements of A, regarded as a single ! 162: column. ! 163: A(:,J) is the J-th column of A ! 164: A(J:K) is A(J),A(J+1),...,A(K) ! 165: A(:,J:K) is A(:,J),A(:,J+1),...,A(:,K) and so on. ! 166: For the use of the colon in the FOR statement, See FOR . ! 167: ! 168: ABS ABS(X) is the absolute value, or complex modulus, of the ! 169: elements of X . ! 170: ! 171: ANS Variable created automatically when expressions are not ! 172: assigned to anything else. ! 173: ! 174: ATAN ATAN(X) is the arctangent of X . See FUN . ! 175: ! 176: BASE BASE(X,B) is a vector containing the base B representation ! 177: of X . This is often used in conjunction with DISPLAY. ! 178: DISPLAY(X,B) is the same as DISPLAY(BASE(X,B)). For ! 179: example, DISP(4*ATAN(1),16) prints the hexadecimal ! 180: representation of pi. ! 181: ! 182: CHAR CHAR(K) requests an input line containing a single ! 183: character to replace MATLAB character number K in the ! 184: following table. For example, CHAR(45) replaces backslash. ! 185: CHAR(-K) replaces the alternate character number K. ! 186: ! 187: K character alternate name ! 188: 0 - 9 0 - 9 0 - 9 digits ! 189: 10 - 35 A - Z a - z letters ! 190: 36 blank ! 191: 37 ( ( lparen ! 192: 38 ) ) rparen ! 193: 39 ; ; semi ! 194: 40 : | colon ! 195: 41 + + plus ! 196: 42 - - minus ! 197: 43 * * star ! 198: 44 / / slash ! 199: 45 \ $ backslash ! 200: 46 = = equal ! 201: 47 . . dot ! 202: 48 , , comma ! 203: 49 ' " quote ! 204: 50 < [ less ! 205: 51 > ] great ! 206: ! 207: CHOL Cholesky factorization. CHOL(X) uses only the diagonal ! 208: and upper triangle of X . The lower triangular is assumed ! 209: to be the (complex conjugate) transpose of the upper. If ! 210: X is positive definite, then R = CHOL(X) produces an ! 211: upper triangular R so that R'*R = X . If X is not ! 212: positive definite, an error message is printed. ! 213: ! 214: CHOP Truncate arithmetic. CHOP(P) causes P places to be chopped ! 215: off after each arithmetic operation in subsequent ! 216: computations. This means P hexadecimal digits on some ! 217: computers and P octal digits on others. CHOP(0) restores ! 218: full precision. ! 219: ! 220: CLEAR Erases all variables, except EPS, FLOP, EYE and RAND. ! 221: X = <> erases only variable X . So does CLEAR X . ! 222: ! 223: COND Condition number in 2-norm. COND(X) is the ratio of the ! 224: largest singular value of X to the smallest. ! 225: ! 226: CONJG CONJG(X) is the complex conjugate of X . ! 227: ! 228: COS COS(X) is the cosine of X . See FUN . ! 229: ! 230: DET DET(X) is the determinant of the square matrix X . ! 231: ! 232: DIAG If V is a row or column vector with N components, ! 233: DIAG(V,K) is a square matrix of order N+ABS(K) with the ! 234: elements of V on the K-th diagonal. K = 0 is the main ! 235: diagonal, K > 0 is above the main diagonal and K < 0 is ! 236: below the main diagonal. DIAG(V) simply puts V on the ! 237: main diagonal. ! 238: eg. DIAG(-M:M) + DIAG(ONES(2*M,1),1) + DIAG(ONES(2*M,1),-1) ! 239: produces a tridiagonal matrix of order 2*M+1 . ! 240: IF X is a matrix, DIAG(X,K) is a column vector formed ! 241: from the elements of the K-th diagonal of X . ! 242: DIAG(X) is the main diagonal of X . ! 243: DIAG(DIAG(X)) is a diagonal matrix . ! 244: ! 245: DIARY DIARY('file') causes a copy of all subsequent terminal ! 246: input and most of the resulting output to be written on the ! 247: file. DIARY(0) turns it off. See FILE. ! 248: ! 249: DISP DISPLAY(X) prints X in a compact format. If all the ! 250: elements of X are integers between 0 and 51, then X is ! 251: interpreted as MATLAB text and printed accordingly. ! 252: Otherwise, + , - and blank are printed for positive, ! 253: negative and zero elements. Imaginary parts are ignored. ! 254: DISP(X,B) is the same as DISP(BASE(X,B)). ! 255: ! 256: EDIT There are no editing features available on most ! 257: installations and EDIT is not a command. However, on a few ! 258: systems a command line consisting of a single backslash \ ! 259: will cause the local file editor to be called with a copy ! 260: of the previous input line. When the editor returns ! 261: control to MATLAB, it will execute the line again. ! 262: ! 263: EIG Eigenvalues and eigenvectors. ! 264: EIG(X) is a vector containing the eigenvalues of a square ! 265: matrix X . ! 266: <V,D> = EIG(X) produces a diagonal matrix D of ! 267: eigenvalues and a full matrix V whose columns are the ! 268: corresponding eigenvectors so that X*V = V*D . ! 269: ! 270: ELSE Used with IF . ! 271: ! 272: END Terminates the scope of FOR, WHILE and IF statements. ! 273: Without END's, FOR and WHILE repeat all statements up to ! 274: the end of the line. Each END is paired with the closest ! 275: previous unpaired FOR or WHILE and serves to terminate its ! 276: scope. The line ! 277: FOR I=1:N, FOR J=1:N, A(I,J)=1/(I+J-1); A ! 278: would cause A to be printed N**2 times, once for each new ! 279: element. On the other hand, the line ! 280: FOR I=1:N, FOR J=1:N, A(I,J)=1/(I+J-1); END, END, A ! 281: will lead to only the final printing of A . ! 282: Similar considerations apply to WHILE. ! 283: EXIT terminates execution of loops or of MATLAB itself. ! 284: ! 285: EPS Floating point relative accuracy. A permanent variable ! 286: whose value is initially the distance from 1.0 to the next ! 287: largest floating point number. The value is changed by ! 288: CHOP, and other values may be assigned. EPS is used as a ! 289: default tolerance by PINV and RANK. ! 290: ! 291: EXEC EXEC('file',k) obtains subsequent MATLAB input from an ! 292: external file. The printing of input is controlled by the ! 293: optional parameter k . ! 294: If k = 1 , the input is echoed. ! 295: If k = 2 , the MATLAB prompt <> is printed. ! 296: If k = 4 , MATLAB pauses before each prompt and waits for a ! 297: null line to continue. ! 298: If k = 0 , there is no echo, prompt or pause. This is the ! 299: default if the exec command is followed by a semicolon. ! 300: If k = 7 , there will be echos, prompts and pauses. This is ! 301: useful for demonstrations on video terminals. ! 302: If k = 3 , there will be echos and prompts, but no pauses. ! 303: This is the the default if the exec command is not followed ! 304: by a semicolon. ! 305: EXEC(0) causes subsequent input to be obtained from the ! 306: terminal. An end-of-file has the same effect. ! 307: EXEC's may be nested, i.e. the text in the file may contain ! 308: EXEC of another file. EXEC's may also be driven by FOR and ! 309: WHILE loops. ! 310: ! 311: EXIT Causes termination of a FOR or WHILE loop. ! 312: If not in a loop, terminates execution of MATLAB. ! 313: ! 314: EXP EXP(X) is the exponential of X , e to the X . See FUN ! 315: . ! 316: ! 317: EYE Identity matrix. EYE(N) is the N by N identity matrix. ! 318: EYE(M,N) is an M by N matrix with 1's on the diagonal and ! 319: zeros elsewhere. EYE(A) is the same size as A . EYE ! 320: with no arguments is an identity matrix of whatever order ! 321: is appropriate in the context. For example, A + 3*EYE ! 322: adds 3 to each diagonal element of A . ! 323: ! 324: FILE The EXEC, SAVE, LOAD, PRINT and DIARY functions access ! 325: files. The 'file' parameter takes different forms for ! 326: different operating systems. On most systems, 'file' may ! 327: be a string of up to 32 characters in quotes. For example, ! 328: SAVE('A') or EXEC('matlab/demo.exec') . The string will be ! 329: used as the name of a file in the local operating system. ! 330: On all systems, 'file' may be a positive integer k less ! 331: than 10 which will be used as a FORTRAN logical unit ! 332: number. Some systems then automatically access a file with ! 333: a name like FORT.k or FORk.DAT. Other systems require a ! 334: file with a name like FT0kF001 to be assigned to unit k ! 335: before MATLAB is executed. Check your local installation ! 336: for details. ! 337: ! 338: FLOPS Count of floating point operations. ! 339: FLOPS is a permanently defined row vector with two ! 340: elements. FLOPS(1) is the number of floating point ! 341: operations counted during the previous statement. FLOPS(2) ! 342: is a cumulative total. FLOPS can be used in the same way ! 343: as any other vector. FLOPS(2) = 0 resets the cumulative ! 344: total. In addition, FLOPS(1) will be printed whenever a ! 345: statement is terminated by an extra comma. For example, ! 346: X = INV(A);, ! 347: or ! 348: COND(A), (as the last statement on the line). ! 349: HELP FLPS gives more details. ! 350: ! 351: FLPS More detail on FLOPS. ! 352: It is not feasible to count absolutely all floating point ! 353: operations, but most of the important ones are counted. ! 354: Each multiply and add in a real vector operation such as a ! 355: dot product or a 'saxpy' counts one flop. Each multiply ! 356: and add in a complex vector operation counts two flops. ! 357: Other additions, subtractions and multiplications count one ! 358: flop each if the result is real and two flops if it is not. ! 359: Real divisions count one and complex divisions count two. ! 360: Elementary functions count one if real and two if complex. ! 361: Some examples. If A and B are real N by N matrices, then ! 362: A + B counts N**2 flops, ! 363: A*B counts N**3 flops, ! 364: A**100 counts 99*N**3 flops, ! 365: LU(A) counts roughly (1/3)*N**3 flops. ! 366: ! 367: FOR Repeat statements a specific number of times. ! 368: FOR variable = expr, statement, ..., statement, END ! 369: The END at the end of a line may be omitted. The comma ! 370: before the END may also be omitted. The columns of the ! 371: expression are stored one at a time in the variable and ! 372: then the following statements, up to the END, are executed. ! 373: The expression is often of the form X:Y, in which case its ! 374: columns are simply scalars. Some examples (assume N has ! 375: already been assigned a value). ! 376: FOR I = 1:N, FOR J = 1:N, A(I,J) = 1/(I+J-1); ! 377: FOR J = 2:N-1, A(J,J) = J; END; A ! 378: FOR S = 1.0: -0.1: 0.0, ... steps S with increments of -0.1 . ! 379: FOR E = EYE(N), ... sets E to the unit N-vectors. ! 380: FOR V = A, ... has the same effect as ! 381: FOR J = 1:N, V = A(:,J); ... except J is also set here. ! 382: ! 383: FUN For matrix arguments X , the functions SIN, COS, ATAN, ! 384: SQRT, LOG, EXP and X**p are computed using eigenvalues D ! 385: and eigenvectors V . If <V,D> = EIG(X) then f(X) = ! 386: V*f(D)/V . This method may give inaccurate results if V ! 387: is badly conditioned. Some idea of the accuracy can be ! 388: obtained by comparing X**1 with X . ! 389: For vector arguments, the function is applied to each ! 390: component. ! 391: ! 392: HESS Hessenberg form. The Hessenberg form of a matrix is zero ! 393: below the first subdiagonal. If the matrix is symmetric or ! 394: Hermitian, the form is tridiagonal. <P,H> = HESS(A) ! 395: produces a unitary matrix P and a Hessenberg matrix H so ! 396: that A = P*H*P'. By itself, HESS(A) returns H. ! 397: ! 398: HILB Inverse Hilbert matrix. HILB(N) is the inverse of the N ! 399: by N matrix with elements 1/(i+j-1), which is a famous ! 400: example of a badly conditioned matrix. The result is exact ! 401: for N less than about 15, depending upon the computer. ! 402: ! 403: IF Conditionally execute statements. Simple form... ! 404: IF expression rop expression, statements ! 405: where rop is =, <, >, <=, >=, or <> (not equal) . The ! 406: statements are executed once if the indicated comparison ! 407: between the real parts of the first components of the two ! 408: expressions is true, otherwise the statements are skipped. ! 409: Example. ! 410: IF ABS(I-J) = 1, A(I,J) = -1; ! 411: More complicated forms use END in the same way it is used ! 412: with FOR and WHILE and use ELSE as an abbreviation for END, ! 413: IF expression not rop expression . Example ! 414: FOR I = 1:N, FOR J = 1:N, ... ! 415: IF I = J, A(I,J) = 2; ELSE IF ABS(I-J) = 1, A(I,J) = -1; ... ! 416: ELSE A(I,J) = 0; ! 417: An easier way to accomplish the same thing is ! 418: A = 2*EYE(N); ! 419: FOR I = 1:N-1, A(I,I+1) = -1; A(I+1,I) = -1; ! 420: ! 421: IMAG IMAG(X) is the imaginary part of X . ! 422: ! 423: INV INV(X) is the inverse of the square matrix X . A warning ! 424: message is printed if X is badly scaled or nearly ! 425: singular. ! 426: ! 427: KRON KRON(X,Y) is the Kronecker tensor product of X and Y . It ! 428: is also denoted by X .*. Y . The result is a large matrix ! 429: formed by taking all possible products between the elements ! 430: of X and those of Y . For example, if X is 2 by 3, then ! 431: X .*. Y is ! 432: ! 433: < x(1,1)*Y x(1,2)*Y x(1,3)*Y ! 434: x(2,1)*Y x(2,2)*Y x(2,3)*Y > ! 435: ! 436: The five-point discrete Laplacian for an n-by-n grid can be ! 437: generated by ! 438: ! 439: T = diag(ones(n-1,1),1); T = T + T'; I = EYE(T); ! 440: A = T.*.I + I.*.T - 4*EYE; ! 441: ! 442: Just in case they might be useful, MATLAB includes ! 443: constructions called Kronecker tensor quotients, denoted by ! 444: X ./. Y and X .\. Y . They are obtained by replacing the ! 445: elementwise multiplications in X .*. Y with divisions. ! 446: ! 447: LINES An internal count is kept of the number of lines of output ! 448: since the last input. Whenever this count approaches a ! 449: limit, the user is asked whether or not to suppress ! 450: printing until the next input. Initially the limit is 25. ! 451: LINES(N) resets the limit to N . ! 452: ! 453: LOAD LOAD('file') retrieves all the variables from the file . ! 454: See FILE and SAVE for more details. To prepare your own ! 455: file for LOADing, change the READs to WRITEs in the code ! 456: given under SAVE. ! 457: ! 458: LOG LOG(X) is the natural logarithm of X . See FUN . ! 459: Complex results are produced if X is not positive, or has ! 460: nonpositive eigenvalues. ! 461: ! 462: LONG Determine output format. All computations are done in ! 463: complex arithmetic and double precision if it is available. ! 464: SHORT and LONG merely switch between different output ! 465: formats. ! 466: SHORT Scaled fixed point format with about 5 digits. ! 467: LONG Scaled fixed point format with about 15 digits. ! 468: SHORT E Floating point format with about 5 digits. ! 469: LONG E Floating point format with about 15 digits. ! 470: LONG Z System dependent format, often hexadecimal. ! 471: ! 472: LU Factors from Gaussian elimination. <L,U> = LU(X) stores a ! 473: upper triangular matrix in U and a 'psychologically lower ! 474: triangular matrix', i.e. a product of lower triangular and ! 475: permutation matrices, in L , so that X = L*U . By itself, ! 476: LU(X) returns the output from CGEFA . ! 477: ! 478: MACRO The macro facility involves text and inward pointing angle ! 479: brackets. If STRING is the source text for any MATLAB ! 480: expression or statement, then ! 481: t = 'STRING'; ! 482: encodes the text as a vector of integers and stores that ! 483: vector in t . DISP(t) will print the text and ! 484: >t< ! 485: causes the text to be interpreted, either as a statement or ! 486: as a factor in an expression. For example ! 487: t = '1/(i+j-1)'; ! 488: disp(t) ! 489: for i = 1:n, for j = 1:n, a(i,j) = >t<; ! 490: generates the Hilbert matrix of order n. ! 491: Another example showing indexed text, ! 492: S = <'x = 3 ' ! 493: 'y = 4 ' ! 494: 'z = sqrt(x*x+y*y)'> ! 495: for k = 1:3, >S(k,:)< ! 496: It is necessary that the strings making up the "rows" of ! 497: the "matrix" S have the same lengths. ! 498: ! 499: MAGIC Magic square. MAGIC(N) is an N by N matrix constructed ! 500: from the integers 1 through N**2 with equal row and column ! 501: sums. ! 502: ! 503: NORM For matrices.. ! 504: NORM(X) is the largest singular value of X . ! 505: NORM(X,1) is the 1-norm of X . ! 506: NORM(X,2) is the same as NORM(X) . ! 507: NORM(X,'INF') is the infinity norm of X . ! 508: NORM(X,'FRO') is the F-norm, i.e. SQRT(SUM(DIAG(X'*X))) . ! 509: For vectors.. ! 510: NORM(V,P) = (SUM(V(I)**P))**(1/P) . ! 511: NORM(V) = NORM(V,2) . ! 512: NORM(V,'INF') = MAX(ABS(V(I))) . ! 513: ! 514: ONES All ones. ONES(N) is an N by N matrix of ones. ONES(M,N) ! 515: is an M by N matrix of ones . ONES(A) is the same size as ! 516: A and all ones . ! 517: ! 518: ORTH Orthogonalization. Q = ORTH(X) is a matrix with ! 519: orthonormal columns, i.e. Q'*Q = EYE, which span the same ! 520: space as the columns of X . ! 521: ! 522: PINV Pseudoinverse. X = PINV(A) produces a matrix X of the ! 523: same dimensions as A' so that A*X*A = A , X*A*X = X and ! 524: AX and XA are Hermitian . The computation is based on ! 525: SVD(A) and any singular values less than a tolerance are ! 526: treated as zero. The default tolerance is ! 527: NORM(SIZE(A),'inf')*NORM(A)*EPS. This tolerance may be ! 528: overridden with X = PINV(A,tol). See RANK. ! 529: ! 530: PLOT PLOT(X,Y) produces a plot of the elements of Y against ! 531: those of X . PLOT(Y) is the same as PLOT(1:n,Y) where n is ! 532: the number of elements in Y . PLOT(X,Y,P) or ! 533: PLOT(X,Y,p1,...,pk) passes the optional parameter vector P ! 534: or scalars p1 through pk to the plot routine. The default ! 535: plot routine is a crude printer-plot. It is hoped that an ! 536: interface to local graphics equipment can be provided. ! 537: An interesting example is ! 538: t = 0:50; ! 539: PLOT( t.*cos(t), t.*sin(t) ) ! 540: ! 541: POLY Characteristic polynomial. ! 542: If A is an N by N matrix, POLY(A) is a column vector with ! 543: N+1 elements which are the coefficients of the ! 544: characteristic polynomial, DET(lambda*EYE - A) . ! 545: If V is a vector, POLY(V) is a vector whose elements are ! 546: the coefficients of the polynomial whose roots are the ! 547: elements of V . For vectors, ROOTS and POLY are inverse ! 548: functions of each other, up to ordering, scaling, and ! 549: roundoff error. ! 550: ROOTS(POLY(1:20)) generates Wilkinson's famous example. ! 551: ! 552: PRINT PRINT('file',X) prints X on the file using the current ! 553: format determined by SHORT, LONG Z, etc. See FILE. ! 554: ! 555: PROD PROD(X) is the product of all the elements of X . ! 556: ! 557: QR Orthogonal-triangular decomposition. ! 558: <Q,R> = QR(X) produces an upper triangular matrix R of ! 559: the same dimension as X and a unitary matrix Q so that ! 560: X = Q*R . ! 561: <Q,R,E> = QR(X) produces a permutation matrix E , an ! 562: upper triangular R with decreasing diagonal elements and ! 563: a unitary Q so that X*E = Q*R . ! 564: By itself, QR(X) returns the output of CQRDC . TRIU(QR(X)) ! 565: is R . ! 566: ! 567: RAND Random numbers and matrices. RAND(N) is an N by N matrix ! 568: with random entries. RAND(M,N) is an M by N matrix with ! 569: random entries. RAND(A) is the same size as A . RAND ! 570: with no arguments is a scalar whose value changes each time ! 571: it is referenced. ! 572: Ordinarily, random numbers are uniformly distributed in ! 573: the interval (0.0,1.0) . RAND('NORMAL') switches to a ! 574: normal distribution with mean 0.0 and variance 1.0 . ! 575: RAND('UNIFORM') switches back to the uniform distribution. ! 576: RAND('SEED') returns the current value of the seed for the ! 577: generator. RAND('SEED',n) sets the seed to n . ! 578: RAND('SEED',0) resets the seed to 0, its value when MATLAB ! 579: is first entered. ! 580: ! 581: RANK Rank. K = RANK(X) is the number of singular values of X ! 582: that are larger than NORM(SIZE(X),'inf')*NORM(X)*EPS. ! 583: K = RANK(X,tol) is the number of singular values of X that ! 584: are larger than tol . ! 585: ! 586: RCOND RCOND(X) is an estimate for the reciprocal of the ! 587: condition of X in the 1-norm obtained by the LINPACK ! 588: condition estimator. If X is well conditioned, RCOND(X) ! 589: is near 1.0 . If X is badly conditioned, RCOND(X) is ! 590: near 0.0 . ! 591: <R, Z> = RCOND(A) sets R to RCOND(A) and also produces a ! 592: vector Z so that ! 593: NORM(A*Z,1) = R*NORM(A,1)*NORM(Z,1) ! 594: So, if RCOND(A) is small, then Z is an approximate null ! 595: vector. ! 596: ! 597: RAT An experimental function which attempts to remove the ! 598: roundoff error from results that should be "simple" ! 599: rational numbers. ! 600: RAT(X) approximates each element of X by a continued ! 601: fraction of the form ! 602: ! 603: a/b = d1 + 1/(d2 + 1/(d3 + ... + 1/dk)) ! 604: ! 605: with k <= len, integer di and abs(di) <= max . The default ! 606: values of the parameters are len = 5 and max = 100. ! 607: RAT(len,max) changes the default values. Increasing either ! 608: len or max increases the number of possible fractions. ! 609: <A,B> = RAT(X) produces integer matrices A and B so that ! 610: ! 611: A ./ B = RAT(X) ! 612: ! 613: Some examples: ! 614: ! 615: long ! 616: T = hilb(6), X = inv(T) ! 617: <A,B> = rat(X) ! 618: H = A ./ B, S = inv(H) ! 619: ! 620: short e ! 621: d = 1:8, e = ones(d), A = abs(d'*e - e'*d) ! 622: X = inv(A) ! 623: rat(X) ! 624: display(ans) ! 625: ! 626: ! 627: REAL REAL(X) is the real part of X . ! 628: ! 629: RETURN From the terminal, causes return to the operating system ! 630: or other program which invoked MATLAB. From inside an ! 631: EXEC, causes return to the invoking EXEC, or to the ! 632: terminal. ! 633: ! 634: RREF RREF(A) is the reduced row echelon form of the rectangular ! 635: matrix. RREF(A,B) is the same as RREF(<A,B>) . ! 636: ! 637: ROOTS Find polynomial roots. ROOTS(C) computes the roots of the ! 638: polynomial whose coefficients are the elements of the ! 639: vector C . If C has N+1 components, the polynomial is ! 640: C(1)*X**N + ... + C(N)*X + C(N+1) . See POLY. ! 641: ! 642: ROUND ROUND(X) rounds the elements of X to the nearest ! 643: integers. ! 644: ! 645: SAVE SAVE('file') stores all the current variables in a file. ! 646: SAVE('file',X) saves only X . See FILE . ! 647: The variables may be retrieved later by LOAD('file') or by ! 648: your own program using the following code for each matrix. ! 649: The lines involving XIMAG may be eliminated if everything ! 650: is known to be real. ! 651: ! 652: attach lunit to 'file' ! 653: REAL or DOUBLE PRECISION XREAL(MMAX,NMAX) ! 654: REAL or DOUBLE PRECISION XIMAG(MMAX,NMAX) ! 655: READ(lunit,101) ID,M,N,IMG ! 656: DO 10 J = 1, N ! 657: READ(lunit,102) (XREAL(I,J), I=1,M) ! 658: IF (IMG .NE. 0) READ(lunit,102) (XIMAG(I,J),I=1,M) ! 659: 10 CONTINUE ! 660: ! 661: The formats used are system dependent. The following are ! 662: typical. See SUBROUTINE SAVLOD in your local ! 663: implementation of MATLAB. ! 664: ! 665: 101 FORMAT(4A1,3I4) ! 666: 102 FORMAT(4Z18) ! 667: 102 FORMAT(4O20) ! 668: 102 FORMAT(4D25.18) ! 669: ! 670: SCHUR Schur decomposition. <U,T> = SCHUR(X) produces an upper ! 671: triangular matrix T , with the eigenvalues of X on the ! 672: diagonal, and a unitary matrix U so that X = U*T*U' and ! 673: U'*U = EYE . By itself, SCHUR(X) returns T . ! 674: ! 675: SHORT See LONG . ! 676: ! 677: SEMI Semicolons at the end of lines will cause, rather than ! 678: suppress, printing. A second SEMI restores the initial ! 679: interpretation. ! 680: ! 681: SIN SIN(X) is the sine of X . See FUN . ! 682: ! 683: SIZE If X is an M by N matrix, then SIZE(X) is <M, N> . ! 684: Can also be used with a multiple assignment, ! 685: <M, N> = SIZE(X) . ! 686: ! 687: SQRT SQRT(X) is the square root of X . See FUN . Complex ! 688: results are produced if X is not positive, or has ! 689: nonpositive eigenvalues. ! 690: ! 691: STOP Use EXIT instead. ! 692: ! 693: SUM SUM(X) is the sum of all the elements of X . ! 694: SUM(DIAG(X)) is the trace of X . ! 695: ! 696: SVD Singular value decomposition. <U,S,V> = SVD(X) produces a ! 697: diagonal matrix S , of the same dimension as X and with ! 698: nonnegative diagonal elements in decreasing order, and ! 699: unitary matrices U and V so that X = U*S*V' . ! 700: By itself, SVD(X) returns a vector containing the singular ! 701: values. ! 702: <U,S,V> = SVD(X,0) produces the "economy size" ! 703: decomposition. If X is m by n with m > n, then only the ! 704: first n columns of U are computed and S is n by n . ! 705: ! 706: TRIL Lower triangle. TRIL(X) is the lower triangular part of X. ! 707: TRIL(X,K) is the elements on and below the K-th diagonal of ! 708: X. K = 0 is the main diagonal, K > 0 is above the main ! 709: diagonal and K < 0 is below the main diagonal. ! 710: ! 711: TRIU Upper triangle. TRIU(X) is the upper triangular part of X. ! 712: TRIU(X,K) is the elements on and above the K-th diagonal of ! 713: X. K = 0 is the main diagonal, K > 0 is above the main ! 714: diagonal and K < 0 is below the main diagonal. ! 715: ! 716: USER Allows personal Fortran subroutines to be linked into ! 717: MATLAB . The subroutine should have the heading ! 718: ! 719: SUBROUTINE USER(A,M,N,S,T) ! 720: REAL or DOUBLE PRECISION A(M,N),S,T ! 721: ! 722: The MATLAB statement Y = USER(X,s,t) results in a call to ! 723: the subroutine with a copy of the matrix X stored in the ! 724: argument A , its column and row dimensions in M and N , ! 725: and the scalar parameters s and t stored in S and T ! 726: . If s and t are omitted, they are set to 0.0 . After ! 727: the return, A is stored in Y . The dimensions M and ! 728: N may be reset within the subroutine. The statement Y = ! 729: USER(K) results in a call with M = 1, N = 1 and A(1,1) = ! 730: FLOAT(K) . After the subroutine has been written, it must ! 731: be compiled and linked to the MATLAB object code within the ! 732: local operating system. ! 733: ! 734: WHAT Lists commands and functions currently available. ! 735: ! 736: WHILE Repeat statements an indefinite number of times. ! 737: WHILE expr rop expr, statement, ..., statement, END ! 738: where rop is =, <, >, <=, >=, or <> (not equal) . The END ! 739: at the end of a line may be omitted. The comma before the ! 740: END may also be omitted. The commas may be replaced by ! 741: semicolons to avoid printing. The statements are ! 742: repeatedly executed as long as the indicated comparison ! 743: between the real parts of the first components of the two ! 744: expressions is true. Example (assume a matrix A is ! 745: already defined). ! 746: E = 0*A; F = E + EYE; N = 1; ! 747: WHILE NORM(E+F-E,1) > 0, E = E + F; F = A*F/N; N = N + 1; ! 748: E ! 749: ! 750: WHO Lists current variables. ! 751: ! 752: WHY Provides succinct answers to any questions. ! 753: ! 754: EOF End of help file.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.