Scilab Help Homepage

Scilab Homepage | Online Help | Wiki | Bug Tracker | Forge | Mailing Lists Archives | ATOMS | File Exchange

Scilab help >> Homepage

### Welcome to Scilab 6.1

Scilab 6.1 is a major new release of Scilab, the open-source platform for numerical computation.

Here is a tour of the changes between Scilab 6.0.2, & 6.1.0.

## Main new features

In summary, the main new features are:

- Webtools utilities added for HTTP protocol, JSON data usage.
- Profiled values are available as Scilab values
- Values have a cleaner display:
  - they are displayed in order on assignment.
  - strings are quoted
  - complex numbers are aligned for matrices
  - numbers (IEEE 754 double) are not rounded
  - polynomials and rationals display is more compact
  - In structures, nested lists or structures are now displayed recursively compactly and more explicitly.
- `importgui` function has been added to easily interface csvRead

## Feature changes and additions

- `airy` is added: Evaluation of Airy functions of the first and second kind, and their first derivative, possibly scaled.
- Empty strings are used as the default values on String allocation.
- HTTP get, post, put, upload, patch, delete functions added.
- JSON format compatibility through Scilab variables.
- Memory invalid accesses have been greatly reduced thanks to :
  - PVS-Studio inspections blog report
  - Coverity scan weekly source analysis
- `bitget` is upgraded:
  - It now accepts positive signed encoded integers.
  - It now supports the new uint64 and int64 types of encoded integers.
  - For decimal numbers: bits with indices > 52 can now be retrieved (up to `log2(number_properties("huge"))` = 1024).
  - For decimal numbers `x > 2^52`, queried bits below `%eps` (indices < log2(x)-52) now return `Nan` instead of 0.
  - Several bits can now be retrieved from each component of an input array.
- `bitset` is upgraded:
  - It now accepts positive Signed encoded integers.
  - It now supports the new uint64 and int64 types of encoded integers.
  - For decimal numbers: bits with indices > 32 can now be set (up to #1024).
  - Several bits can now be set for each input component.
  - Distributive scalar inputs are now accepted.
- `edit` now accepts a line number as text (like "23").
- `profileEnable, profileDisable, profileGetInfo` could be used to instrument functions and gather execution information within Scilab.
- `prettyprint` is upgraded:
  - Integer and Text input are now actually supported.
  - Default input arguments can be skipped instead of still having to be provided.
  - The result string is better formatted to be easily wrappable and indented.
- `mesh2d` has been introduced to compute a 2d mesh from vectors (x,y) of points.
- `loadmatfile` is upgraded:
  - Octave native text data files can now be read.
  - Automatic detection of the input data format implemented.
  - `-toStruct` option added, to return results in a structure instead of in the calling environment.
- `jremove` is optional and `clear` could be used to release Java objects mapped to Scilab.
- `blockdiag` is introduced to improve, replace, and extend `sysdiag` to strings.
- `assert_checkequal` is upgraded:
  - support added for Nan and void in lists, Nan in sparses, implicit lists, graphic handles, macros, libraries, and built-in.
  - For arrays of matching typeof and sizes, and for lists of matching lengths, the failure message now indicates the index and values of the first mismatching elements.
- `diophant` is upgraded:
  - Encoded integers are accepted, in addition to decimal numbers. Only integer solutions are then searched.
  - When there is no solution, `[]` is returned.
  - When there is an infinite number of solutions, the err flag has a specific value.
  - The output size gets the input's size.
- `csvRead` and `csvTextScan` are now implemented without extra copies.
- `editvar` GUI support copy-paste of strings removing quotes.
- `calendar` can now display formatted calendars.
- `xmlSetValues` clones `setPreferencesValue` that is now obsolete.
- `unique` is upgraded:
  - return the number of occurrences of distinct entities found in the input array.
  - return distinct entities in their initial order (rather than sorted), with the `"keepOrder"` option.
  - consider all `Nan` values as the same one, with the `"uniqueNan"` option.
- `ellipj` function introduced, to compute the `sn, cn, dn, ns, nc and nd` Jacobi elliptic functions.
- `riccati` is upgraded:
  - `riccati(H)` and `riccati(H, E)` syntaxes added, to describe the Riccati equation through its Hamiltonian H or (E,H) pencil.
  - The residual is returned as a new 3rd output argument.
  - When no solution is found, `X=[] | X1=[]` is returned instead of yielding an error.
- `hallchart` is upgraded:
  - The default set of modules is set automatically, according to data bounds.
  - Handles of the grids and labels are returned. Post-processing them becomes easy.
  - Named colors accepted; better default colors.
  - Improved placement of labels.
- `playsnd` is upgraded:
  - the name of a wav file can now be specified (instead of the sound data).
  - the input sound can now be repeated a given number of times.
  - the modal/non-modal processing is improved.
- `nicholschart` is improved: more neutral default frame color; improved labels positioning; colors can now be specified by their predefined name or "#RRGGBB" hexa code; a structure of handles is now returned to easily post-process both subframes and the set of labels.
- `sciargs` returns a column instead of formerly a row.
- Booleans and encoded integers can now be concatenated together, as in `[%f int8(-5)]`.
- `gsort` can now perform multilevel sorting. This noticeably allows sorting completely complex numbers.
- `factorial` can be used now from n=171 up to n=10^14.
- `intersect` now supports complex numbers.
- `setdiff` now supports complex numbers.
- `twinkle` can now blink together several hierarchically independent objects, like a curve and its labels, etc.
- `repmat` is improved: more neutral default frame color; improved labels positioning; colors can now be specified by their predefined name or "#RRGGBB" hexa code; a structure of handles is now returned to easily post-process both subframes and the set of labels.
- `plot` can now work in semi or bi-logarithmic mode with some input logflag.
- `plotimplicit` function added.
The default smarter grid_style value is now 7 instead of 3.
- `weekday` accepts new date formats and new syntaxes. A language option applying to the day names is now available.
- `vectorfind` is upgraded:
  - `vectorfind(m, [])` now returns `[]` instead of an error.
  - A too long needle now returns [] instead of an error.
  - %nan values never matched. They are now regularly processed, as other values.
  - A needle shorter than the haystack size can now be used.
  - A wildcard value matching any value of the haystack can now be specified and used in the needle. Actual matching ranges can then be returned: Options `joker` and `matching` added.
  - Hypermatrices are now accepted as haystack.
  - The probing direction can now be numeric: 1, 2, ..
  - Returned indices can now be formatted with the new option `indType`.
  - There were no unit tests. More than 100 tests are added.
- `datafit` is now able to fit weighted data. It now supports any gap function vectorized for Data points, and so is much faster. It now accepts any matrix of parameters (not necessarily a colum). It now returns the average Mode-to-data distance, and the termination status for the quasi-Newton algo.
- `tree_show` is upgraded:
  - New `rootTitle` and `styles` optional inputs.
  - New `arrayByFields` option, to allow displaying each array component as an object in its whole.
  - Improved layout: detailled indices for 2D arrays, simplified symbols, etc.
  - The content of implicitlist objects, and information for Scilab functions and libraries of functions are now displayed.
- `nchoosek` is introduced, to compute the binomial coefficients.
- The left .\. and right ./. Kronecker divisions are now implemented, for arrays of decimal or complex numbers.
- `perms` can now build and return only unique permutations, without duplicates.
- Most of graphic objects can be moved interactively in opened figures.
- `circshift` is introduced.
- `atomsGetInstalledPath` is no longer sensitive to the case or completeness of the modules names. Providing the modules versions is now optional.
- `function` replaces `mc` as the new overloading code for functions in Scilab language.

## Help pages

- overhauled/rewritten: `bitget, edit, factorial, vectorfind, datafit`
- fixed / improved: `bench_run, M_SWITCH, comet, comet3d`
- Rewritten: `weekday`
- Translations added:
  - ru_RU: `weekday`

## Bug fixes

In this version, extra effort has been expended on bug fixing and stabilization. Detailed information about those improvements can be found on the CHANGES file.

### Documentation and help

If you are new to Scilab, please use the Scilab beginners tutorial and Xcos beginners tutorial provided by the Scilab Team.

The Scilab Team provides also some documentation and tutorials.

### Other resources

Scilab Homepage - Consult Scilab official website

Wiki - Consult documentations, tricks, etc.

Bug Tracker - Report bugs and wishes about Scilab

Forge - Browse and publish Scilab modules

Mailing Lists - Communicate and exchange with the community

ATOMS - Browse Scilab packaged modules

File Exchange - Exchange your scripts, results and files.