home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / octa21fb.zip / octave / doc / oct-faq.INF (.txt) < prev    next >
OS/2 Help File  |  2000-01-15  |  24KB  |  587 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Title page ΓòÉΓòÉΓòÉ
  3.  
  4.                                    Octave FAQ
  5.  
  6.                      Frequently asked questions about Octave
  7.  
  8.                                 February 14, 1998
  9.  
  10.                                   John W. Eaton
  11.  
  12.  
  13. ΓòÉΓòÉΓòÉ 2. Preface ΓòÉΓòÉΓòÉ
  14.  
  15. This is a list of frequently asked questions (FAQ) for Octave users. 
  16.  
  17. Some information in this FAQ was written for earlier versions of Octave and may 
  18. now be obsolete. 
  19.  
  20. I'm looking for new questions (with answers), better answers, or both.  Please 
  21. send suggestions to bug-octave@bevo.che.wisc.edu. If you have general questions 
  22. about Octave, or need help for something that is not covered by the Octave 
  23. manual or the FAQ, please use the help-octave@bevo.che.wisc.edu mailing list. 
  24.  
  25. This FAQ is intended to supplement, not replace, the Octave manual. Before 
  26. posting a question to the help-octave mailing list, you should first check to 
  27. see if the topic is covered in the manual. 
  28.  
  29.  What is Octave? 
  30.  Version 2.0 
  31.  Octave Features 
  32.  Documentation 
  33.  Getting Octave 
  34.  Installation 
  35.  Common problems 
  36.  Getting additional help 
  37.  Bug reports 
  38.  MATLAB compatibility 
  39.  Index 
  40.  
  41.  
  42. ΓòÉΓòÉΓòÉ 3. What is Octave? ΓòÉΓòÉΓòÉ
  43.  
  44. Octave is a high-level interactive language, primarily intended for numerical 
  45. computations that is mostly compatible with Matlab.(1) 
  46.  
  47. Octave can do arithmetic for real and complex scalars and matrices, solve sets 
  48. of nonlinear algebraic equations, integrate functions over finite and infinite 
  49. intervals, and integrate systems of ordinary differential and 
  50. differential-algebraic equations. 
  51.  
  52. Octave uses the GNU readline library to handle reading and editing input.  By 
  53. default, the line editing commands are similar to the cursor movement commands 
  54. used by GNU Emacs, and a vi-style line editing interface is also available.  At 
  55. the end of each session, the command history is saved, so that commands entered 
  56. during previous sessions are not lost. 
  57.  
  58. The Octave distribution includes a 200+ page Texinfo manual.  Access to the 
  59. complete text of the manual is available via the help command at the Octave 
  60. prompt. 
  61.  
  62. Two and three dimensional plotting is fully supported using gnuplot. 
  63.  
  64. The underlying numerical solvers are currently standard Fortran ones like 
  65. Lapack, Linpack, Odepack, the Blas, etc., packaged in a library of C++ classes. 
  66. If possible, the Fortran subroutines are compiled with the system's Fortran 
  67. compiler, and called directly from the C++ functions.  If that's not possible, 
  68. you can still compile Octave if you have the free Fortran to C translator f2c. 
  69.  
  70. Octave is also free software; you can redistribute it and/or modify it under 
  71. the terms of the GNU General Public License as published by the Free Software 
  72. Foundation. 
  73.  
  74.  
  75. ΓòÉΓòÉΓòÉ 4. What's new in version 2.0 of Octave ΓòÉΓòÉΓòÉ
  76.  
  77. Version 2.0.10 of Octave was released February 6, 1998.  Most bugs reported 
  78. since version 2.0 was release have been fixed, and a number of new features 
  79. have been added.  Octave is now much more compatible with Matlab. 
  80.  
  81. A list of user-visible changes in recent versions of Octave may be found in the 
  82. file NEWS, distributed in both source and binary releases of Octave. 
  83.  
  84.  
  85. ΓòÉΓòÉΓòÉ 5. What features are unique to Octave? ΓòÉΓòÉΓòÉ
  86.  
  87.  Command and variable name completion 
  88.  Command history 
  89.  Data structures 
  90.  Short-circuit boolean operators 
  91.  Increment and decrement operators 
  92.  Unwind-protect 
  93.  Variable-length argument lists 
  94.  Variable-length return lists 
  95.  Built-in ODE and DAE solvers 
  96.  
  97.  
  98. ΓòÉΓòÉΓòÉ 5.1. Command and variable name completion ΓòÉΓòÉΓòÉ
  99.  
  100. Typing a TAB character (ASCII code 9) on the command line causes Octave to 
  101. attempt to complete variable, function, and file names.  Octave uses the text 
  102. before the cursor as the initial portion of the name to complete. 
  103.  
  104. For example, if you type `fu' followed by TAB at the Octave prompt, Octave will 
  105. complete the rest of the name `function' on the command line (unless you have 
  106. other variables or functions defined that begin with the characters `fu').  If 
  107. there is more than one possible completion, Octave will ring the terminal bell 
  108. to let you know that your initial sequence of characters is not enough to 
  109. specify a unique name. To complete the name, you may either edit the initial 
  110. character sequence (usually adding more characters until completion is 
  111. possible) or type another TAB to cause Octave to display the list of possible 
  112. completions. 
  113.  
  114.  
  115. ΓòÉΓòÉΓòÉ 5.2. Command history ΓòÉΓòÉΓòÉ
  116.  
  117. When running interactively, Octave saves the commands you type in an internal 
  118. buffer so that you can recall and edit them.  Emacs and vi editing modes are 
  119. available with Emacs keybindings enabled by default. 
  120.  
  121. When Octave exits, the current command history is saved to the file 
  122. `~/.octave_hist', and each time Octave starts, it inserts the contents of the 
  123. `~/.octave_hist' file in the history list so that it is easy to begin working 
  124. where you left off. 
  125.  
  126.  
  127. ΓòÉΓòÉΓòÉ 5.3. Data structures ΓòÉΓòÉΓòÉ
  128.  
  129. Octave includes a limited amount of support for organizing data in structures. 
  130. The current implementation uses an associative array with indices limited to 
  131. strings, but the syntax is more like C-style structures.  Here are some 
  132. examples of using data structures in Octave. 
  133.  
  134.      Elements of structures can be of any value type. 
  135.  
  136.             octave:1> x.a = 1; x.b = [1, 2; 3, 4]; x.c = "string";
  137.             octave:2> x.a
  138.             x.a = 1
  139.             octave:3> x.b
  140.             x.b =
  141.  
  142.               1  2
  143.               3  4
  144.  
  145.             octave:4> x.c
  146.             x.c = string
  147.  
  148.      Structures may be copied. 
  149.  
  150.             octave:1> y = x
  151.             y =
  152.             {
  153.               a = 1
  154.               b =
  155.  
  156.                 1  2
  157.                 3  4
  158.  
  159.               c = string
  160.               s =
  161.  
  162.                 0.00000  0.00000  0.00000
  163.                 0.00000  5.46499  0.00000
  164.                 0.00000  0.00000  0.36597
  165.  
  166.               u =
  167.  
  168.                 -0.40455  -0.91451
  169.                 -0.91451   0.40455
  170.  
  171.               v =
  172.  
  173.                 -0.57605   0.81742
  174.                 -0.81742  -0.57605
  175.             }
  176.  
  177.      Structure elements may reference other structures. 
  178.  
  179.             octave:1> x.b.d = 3
  180.             x.b.d = 3
  181.             octave:2> x.b
  182.             ans =
  183.             {
  184.               d = 3
  185.             }
  186.             octave:3> x.b.d
  187.             ans = 3
  188.  
  189.      Functions can return structures. 
  190.  
  191.             octave:1> function y = f (x)
  192.             > y.re = real (x);
  193.             > y.im = imag (x);
  194.             > endfunction
  195.  
  196.             octave:2> f (rand + rand*I);
  197.             ans =
  198.             {
  199.               im = 0.18033
  200.               re = 0.19069
  201.             }
  202.  
  203.      Function return lists can include structure elements, and they may be 
  204.       indexed like any other variable. 
  205.  
  206.             octave:1> [x.u, x.s(2:3,2:3), x.v] = svd ([1, 2; 3, 4]);
  207.             octave:2> x
  208.             x =
  209.             {
  210.               s =
  211.  
  212.                 0.00000  0.00000  0.00000
  213.                 0.00000  5.46499  0.00000
  214.                 0.00000  0.00000  0.36597
  215.  
  216.               u =
  217.  
  218.                 -0.40455  -0.91451
  219.                 -0.91451   0.40455
  220.  
  221.               v =
  222.  
  223.                 -0.57605   0.81742
  224.                 -0.81742  -0.57605
  225.             }
  226.  
  227.      You can also use the function is_struct to determine whether a given 
  228.       value is a data structure.  For example 
  229.  
  230.             is_struct (x)
  231.  
  232.       returns 1 if the value of the variable x is a data structure. 
  233.  
  234.  This feature should be considered experimental, but you should expect it to 
  235.  work.  Suggestions for ways to improve it are welcome. 
  236.  
  237.  
  238. ΓòÉΓòÉΓòÉ 5.4. Short-circuit boolean operators ΓòÉΓòÉΓòÉ
  239.  
  240. Octave's `&&' and `||' logical operators are evaluated in a short-circuit 
  241. fashion (like the corresponding operators in the C language) and work 
  242. differently than the element by element operators `&' and `|'. 
  243.  
  244.  
  245. ΓòÉΓòÉΓòÉ 5.5. Increment and decrement operators ΓòÉΓòÉΓòÉ
  246.  
  247. Octave includes the C-like increment and decrement operators `++' and `--' in 
  248. both their prefix and postfix forms. 
  249.  
  250. For example, to pre-increment the variable x, you would write ++x.  This would 
  251. add one to x and then return the new value of x as the result of the 
  252. expression.  It is exactly the same as the expression x = x + 1. 
  253.  
  254. To post-increment a variable x, you would write x++. This adds one to the 
  255. variable x, but returns the value that x had prior to incrementing it.  For 
  256. example, if x is equal to 2, the result of the expression x++ is 2, and the new 
  257. value of x is 3. 
  258.  
  259. For matrix and vector arguments, the increment and decrement operators work on 
  260. each element of the operand. 
  261.  
  262. It is not currently possible to increment index expressions.  For example, you 
  263. might expect that the expression v(4)++ would increment the fourth element of 
  264. the vector v, but instead it results in a parse error.  This problem may be 
  265. fixed in a future release of Octave. 
  266.  
  267.  
  268. ΓòÉΓòÉΓòÉ 5.6. Unwind-protect ΓòÉΓòÉΓòÉ
  269.  
  270. Octave supports a limited form of exception handling modelled after the 
  271. unwind-protect form of Lisp.  The general form of an unwind_protect block looks 
  272. like this: 
  273.  
  274. unwind_protect
  275.   body
  276. unwind_protect_cleanup
  277.   cleanup
  278. end_unwind_protect
  279.  
  280. Where body and cleanup are both optional and may contain any Octave expressions 
  281. or commands.  The statements in cleanup are guaranteed to be executed 
  282. regardless of how control exits body. 
  283.  
  284. The unwind_protect statement is often used to reliably restore the values of 
  285. global variables that need to be temporarily changed. 
  286.  
  287.  
  288. ΓòÉΓòÉΓòÉ 5.7. Variable-length argument lists ΓòÉΓòÉΓòÉ
  289.  
  290. Octave has a real mechanism for handling functions that take an unspecified 
  291. number of arguments, so it is no longer necessary to place an upper bound on 
  292. the number of optional arguments that a function can accept. 
  293.  
  294. Here is an example of a function that uses the new syntax to print a header 
  295. followed by an unspecified number of values: 
  296.  
  297. function foo (heading, ...)
  298.   disp (heading);
  299.   va_start ();
  300.   while (--nargin)
  301.     disp (va_arg ());
  302.   endwhile
  303. endfunction
  304.  
  305. Calling va_start() positions an internal pointer to the first unnamed argument 
  306. and allows you to cycle through the arguments more than once.  It is not 
  307. necessary to call va_start() if you do not plan to cycle through the arguments 
  308. more than once. 
  309.  
  310. The function va_arg() returns the value of the next available argument and 
  311. moves the internal pointer to the next argument.  It is an error to call 
  312. va_arg() when there are no more arguments available. 
  313.  
  314. It is also possible to use the keyword all_va_args to pass all unnamed 
  315. arguments to another function. 
  316.  
  317.  
  318. ΓòÉΓòÉΓòÉ 5.8. Variable-length return lists ΓòÉΓòÉΓòÉ
  319.  
  320. Octave also has a real mechanism for handling functions that return an 
  321. unspecified number of values, so it is no longer necessary to place an upper 
  322. bound on the number of outputs that a function can produce. 
  323.  
  324. Here is an example of a function that uses the new syntax to produce `N' 
  325. values: 
  326.  
  327. function [...] = foo (n)
  328.   for i = 1:n
  329.     vr_val (i);
  330.   endfor
  331. endfunction
  332.  
  333.  
  334. ΓòÉΓòÉΓòÉ 5.9. Built-in ODE and DAE solvers ΓòÉΓòÉΓòÉ
  335.  
  336. Octave includes LSODE and DASSL for solving systems of stiff ordinary 
  337. differential and differential-algebraic equations.  These functions are built 
  338. in to the interpreter. 
  339.  
  340.  
  341. ΓòÉΓòÉΓòÉ 6. What documentation exists for Octave? ΓòÉΓòÉΓòÉ
  342.  
  343. The Octave distribution includes a 220+ page manual that is also distributed 
  344. under the terms of the GNU GPL. 
  345.  
  346. The Octave manual is intended to be a complete reference for Octave, but it is 
  347. not a finished document.  If you have problems using it, or find that some 
  348. topic is not adequately explained, indexed, or cross-referenced, please send a 
  349. bug report to bug-octave@bevo.che.wisc.edu. 
  350.  
  351. Because the Octave manual is written using Texinfo, the complete text of the 
  352. Octave manual is also available on line using the GNU Info system via the GNU 
  353. Emacs, info, or xinfo programs, or by using the `help -i' command to start the 
  354. GNU info browser directly from the Octave prompt. 
  355.  
  356. It is also possible to use your favorite WWW browser to read the Octave manual 
  357. by converting the Texinfo source to HTML using the texi2html program. 
  358.  
  359.  
  360. ΓòÉΓòÉΓòÉ 7. Obtaining Source Code ΓòÉΓòÉΓòÉ
  361.  
  362.  Octave for Unix 
  363.  Octave for other platforms 
  364.  latest versions 
  365.  
  366.  
  367. ΓòÉΓòÉΓòÉ 7.1. How do I get a copy of Octave for Unix? ΓòÉΓòÉΓòÉ
  368.  
  369. You can get Octave from a friend who has a copy, by anonymous FTP, or by 
  370. ordering a tape or CD-ROM from the Free Software Foundation (FSF). 
  371.  
  372. Octave was not developed by the FSF, but the FSF does distribute Octave, and 
  373. the developers of Octave support the efforts of the FSF by encouraging users of 
  374. Octave to order Octave on CD-ROM directly from the FSF. 
  375.  
  376. The FSF is a nonprofit organization that distributes software and manuals to 
  377. raise funds for more GNU development.  Buying a CD-ROM from the FSF contributes 
  378. directly to paying staff to develop GNU software. CD-ROMs cost $240 if an 
  379. organization is buying, or $60 if an individual is buying. 
  380.  
  381. For more information about ordering from the FSF, contact gnu@gnu.org, phone 
  382. (617) 542-5942 or anonymous ftp the file `/pub/gnu/GNUinfo/ORDERS' from 
  383. ftp.gnu.org. 
  384.  
  385. If you are on the Internet, you can copy the latest distribution version of 
  386. Octave from the file `/pub/octave/octave-M.N.tar.gz', on the host 
  387. `ftp.che.wisc.edu'.  This tar file has been compressed with GNU gzip, so be 
  388. sure to use binary mode for the transfer.  `M' and `N' stand for version 
  389. numbers; look at a listing of the directory through ftp to see what version is 
  390. available.  After you unpack the distribution, be sure to look at the files 
  391. `README' and `INSTALL'. 
  392.  
  393. Binaries for several popular systems are also available.  If you would like 
  394. help out by making binaries available for other systems, please contact 
  395. bug-octave@bevo.che.wisc.edu. 
  396.  
  397. A list of user-visible changes since the last release is available in the file 
  398. `NEWS'.  The file `ChangeLog' in the source distribution contains a more 
  399. detailed record of changes made since the last release. 
  400.  
  401.  
  402. ΓòÉΓòÉΓòÉ 7.2. How do I get a copy of Octave for (some other platform)? ΓòÉΓòÉΓòÉ
  403.  
  404. Octave currently runs on Unix-like systems, OS/2, and Windows NT/95 (using the 
  405. gnu-win32 tools from Cygnus Support).  It should be possible to make Octave 
  406. work on other systems as well.  If you are interested in porting Octave to 
  407. other systems, please contact bug-octave@bevo.che.wisc.edu. 
  408.  
  409.  
  410. ΓòÉΓòÉΓòÉ 7.3. What is the latest version of Octave ΓòÉΓòÉΓòÉ
  411.  
  412. The latest version of Octave is 2.0.10, released February 6, 1998. 
  413.  
  414.  
  415. ΓòÉΓòÉΓòÉ 8. Installation Issues and Problems ΓòÉΓòÉΓòÉ
  416.  
  417. Octave requires approximately 125MB of disk storage to unpack and compile from 
  418. source (significantly less if you don't compile with debugging symbols or 
  419. create shared libraries).  Once installed, Octave requires approximately 65MB 
  420. of disk space (again, considerably less if you don't build shared libraries or 
  421. the binaries and libraries do not include debugging symbols). 
  422.  
  423.  What else do I need? 
  424.  Other C++ compilers? 
  425.  
  426.  
  427. ΓòÉΓòÉΓòÉ 8.1. What else do I need? ΓòÉΓòÉΓòÉ
  428.  
  429. To compile Octave, you will need a recent version of GNU Make.  You will also 
  430. need g++ 2.7.2 or later.  Version 2.8.0 or egcs 1.0.x should work.  Later 
  431. versions may work, but C++ is still evolving, so don't be too surprised if you 
  432. run into some trouble. 
  433.  
  434. It is no longer necessary to have libg++, but you do need to have the GNU 
  435. implementation of libstdc++.  If you are using g++ 2.7.2, libstdc++ is 
  436. distributed along with libg++, but for later versions, libstdc++ is distributed 
  437. separately.  For egcs, libstdc++ is included with the compiler distribution. 
  438.  
  439. <em>You must have gnu make to compile octave</em>.  Octave's Makefiles use 
  440. features of GNU Make that are not present in other versions of make. GNU Make 
  441. is very portable and easy to install. 
  442.  
  443.  
  444. ΓòÉΓòÉΓòÉ 8.2. Can I compile Octave with another C++ compiler? ΓòÉΓòÉΓòÉ
  445.  
  446. Currently, Octave can only be compiled with the GNU C++ compiler.  It would be 
  447. nice to make it possible to compile Octave with other C++ compilers, but the 
  448. maintainers do not have sufficient time to devote to this.  If you are 
  449. interested in working to make Octave portable to other compilers, please 
  450. contact bug-octave@bevo.che.wisc.edu. 
  451.  
  452.  
  453. ΓòÉΓòÉΓòÉ 9. Common problems ΓòÉΓòÉΓòÉ
  454.  
  455. This list is probably far too short.  Feel free to suggest additional questions 
  456. (preferably with answers!) 
  457.  
  458.      Octave takes a long time to find symbols. 
  459.  
  460.       Octave is probably spending this time recursively searching directories 
  461.       for function files.  Check the value of your LOADPATH.  For those 
  462.       elements that end in `//', do any name a very large directory tree? Does 
  463.       it contain directories that have a mixture of files and directories?  In 
  464.       order for the recursive directory searching code to work efficiently, 
  465.       directories that are to be searched recursively should have either 
  466.       function files only, or subdirectories only, but not a mixture of both. 
  467.       Check to make sure that Octave's standard set of function files is 
  468.       installed this way. 
  469.  
  470.  
  471. ΓòÉΓòÉΓòÉ 10. Getting additional help ΓòÉΓòÉΓòÉ
  472.  
  473. The mailing list 
  474.  
  475. help-octave@bevo.che.wisc.edu
  476.  
  477. is available for questions related to using, installing, and porting Octave 
  478. that are not adequately answered by the Octave manual or by this document. 
  479.  
  480. If you would like to join the discussion and receive all messages sent to the 
  481. list, please send a short note to 
  482.  
  483. help-octave-request@bevo.che.wisc.edu
  484.             ^^^^^^^
  485.  
  486. *Please do not* send requests to be added or removed from the the mailing list, 
  487. or other administrative trivia to the list itself. 
  488.  
  489. An archive of old postings to the help-octave mailing list is maintained on 
  490. ftp.che.wisc.edu in the directory `/pub/octave/MAILING-LISTS'. 
  491.  
  492.  
  493. ΓòÉΓòÉΓòÉ 11. I think I have found a bug in Octave. ΓòÉΓòÉΓòÉ
  494.  
  495. ``I think I have found a bug in Octave, but I'm not sure.  How do I know, and 
  496. who should I tell?'' 
  497.  
  498. First, see the section on bugs and bug reports in the Octave manual. The Octave 
  499. manual is included in the Octave distribution. 
  500.  
  501. When you report a bug, make sure to describe the type of computer you are 
  502. using, the version of the operating system it is running, and the version of 
  503. Octave that you are using.  Also provide enough code so that the Octave 
  504. maintainers can duplicate your bug. 
  505.  
  506. If you have Octave working at all, the easiest way to do this is to use the 
  507. Octave function bug_report.  When you execute this function, Octave will prompt 
  508. you for a subject and then invoke the editor on a file that already contains 
  509. all the configuration information.  When you exit the editor, Octave will mail 
  510. the bug report for you. 
  511.  
  512. If for some reason you cannot use Octave's bug_report function, mail your bug 
  513. report to "bug-octave@bevo.che.wisc.edu".  Your message needs to include enough 
  514. information to allow the maintainers of Octave to fix the bug.  Please read the 
  515. section on bugs and bug reports in the Octave manual for a list of things that 
  516. should be included in every bug report. 
  517.  
  518.  
  519. ΓòÉΓòÉΓòÉ 12. Porting programs from Matlab to Octave ΓòÉΓòÉΓòÉ
  520.  
  521. ``I wrote some code for Matlab, and I want to get it running under Octave.  Is 
  522. there anything I should watch out for?'' 
  523.  
  524. The differences between Octave and Matlab typically fall into one of three 
  525. categories: 
  526.  
  527.    1. Irrelevant. 
  528.  
  529.    2. Known differences, perhaps configurable with a user preference variable. 
  530.  
  531.    3. Unknown differences. 
  532.  
  533.  The first category, irrelevant differences, do not affect computations and 
  534.  most likely do not affect the execution of function files. 
  535.  
  536.  The differences of the second category are usually because the authors of 
  537.  Octave decided on a better (subjective) implementation that the way Matlab 
  538.  does it, and so introduced ``user preference variables'' so that you can 
  539.  customize Octave's behavior to be either Matlab-compatible or to use Octave's 
  540.  new features.  To make Octave more Matlab-compatible, put the following 
  541.  statements in your `~/.octaverc' file, or use the command line option 
  542.  `--traditional', which implies all of these settings.  Note that this list may 
  543.  not be complete, because some new variables may have been introduced since 
  544.  this document was last updated. 
  545.  
  546.     PS1 = ">> "
  547.     PS2 = ""
  548.     beep_on_error = 1.0
  549.     default_eval_print_flag = 0.0
  550.     default_save_format = "mat-binary"
  551.     define_all_return_values = 1.0
  552.     do_fortran_indexing = 1.0
  553.     empty_list_elements_ok = 1.0
  554.     fixed_point_format = 1.0
  555.     implicit_num_to_str_ok = 1.0
  556.     implicit_str_to_num_ok = 1.0
  557.     ok_to_lose_imaginary_part = 1.0
  558.     page_screen_output = 0.0
  559.     prefer_column_vectors = 0.0
  560.     prefer_zero_one_indexing = 1.0
  561.     print_empty_dimensions = 0.0
  562.     treat_neg_dim_as_zero = 1.0
  563.     warn_function_name_clash = 0.0
  564.     whitespace_in_literal_matrix = "traditional"
  565.  
  566.  Some other known differences are: 
  567.  
  568.      The Octave plotting functions are mostly compatible with the ones from 
  569.       Matlab 3.x, but not from Matlab 4.x. 
  570.  
  571.  The third category of differences is (hopefully) shrinking.  If you find a 
  572.  difference between Octave behavior and Matlab, then you should send a 
  573.  description of this difference (with code illustrating the difference, if 
  574.  possible) to bug-octave@bevo.che.wisc.edu. 
  575.  
  576.  An archive of old postings to the Octave mailing lists is maintained on 
  577.  ftp.che.wisc.edu in the directory `/pub/octave/MAILING-LISTS'. 
  578.  
  579.  
  580. ΓòÉΓòÉΓòÉ 13. Concept Index ΓòÉΓòÉΓòÉ
  581.  
  582. Sorry, no cp index 
  583.  
  584.  
  585. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  586.  
  587. Matlab is a registered trademark of The MathWorks,