When
comparing Scilab with C++, we will find that matrices in Scilab are equivalent
to arrays in C++ and lists in Scilab are equivalent to structures in C++.
Lists (data structures) are preferable when creating a database or when a set
of data has no specified layout. The following points are some differences
between matrices and lists in Scilab:
§
Matrix elements must be all of the same type
(.i.e. matrix of strings, sparse matrix, polynomial matrix, real matrix, ... )
, while the list can store different types of elements like numbers, strings,
matrices, sparse matrices, polynomial, functions, ... and for this reason lists
(typed lists) are implemented in graphic window properties, axes properties, entity
properties, and ... etc. in Scilab as it contains mixed types of data, like the
following:
Figure property
|
Type
|
Type No.
|
Children |
Matrix of graphic handles |
9 |
Figure position |
Real row vector of
size 1 x 2 |
1 |
Figure size |
Real row vector of
size 1 x 2 |
1 |
Axes size |
Real row vector of
size 1 x 2 |
1 |
Auto resize |
Matrix of character
strings |
10 |
View port |
Real row vector of
size 1 x 2 |
1 |
Figure name |
Matrix of character
strings |
10 |
Figure ID |
Real matrix |
1 |
Info message |
Matrix of character
strings |
10 |
Color map |
Matrix of size M x 3,
where M is number of colors and 3 is the RGB channels |
1 |
Pixel map |
Matrix of character
strings |
10 |
Pixel drawing mode |
Matrix of character
strings |
10 |
. . . |
. . . |
. . . |
For
example, you can use lists to create a data base for employees and this data
base contains the following data:
□ Employee name
(string)
□ Employee age
(real matrix)
□ Employee salary
(real matrix)
□ Employee is
married or not (Boolean)
□ Employee notes
(empty in case there are no notes)
§
Number of elements in each row in a matrix is the same,
while in lists each row (entry) can has different number of elements
§
Matrix can't store an empty row while list can do