Every Scilab script, function or routine that we need to write will contain for sure variables. From the variables point of view Scilab is very flexible, similar to Matlab®.
Scilab variables are named also objects. So in other tutorials, books, you’ll find “objects” instead of “variables”. I prefer to call them variables maybe because the term “variables” is used in other programming languages like C or Python.
In order to define a variable, in the Scilab console type: „variable name” = „value” and press <ENTER>:
-->variable_name = 12
variable_name =
12.
-->
Variable naming rules
Scilab has specific rules for variable definition that must be taken into account. The variable names can contain any:
- letters, uppercase or lowercase (e.g.
vAriaBle
) - numbers, except for the first character (e.g.
var1aBl3
) - of the following characters (e.g.
#first_variable
)
Character | Description | Example |
% | percent* | %var1 |
_ | underscore | _var1 |
# | hash | #var1 |
$ | dollar sign | $var1 |
? | question mark | ?var1 |
* The percent character can only be used as first character in the variable name
The length of the variable name is limited to 24 characters. Any characters above 24 will be ignored.
-->_12345678910111213141516171819202122232425 = 10 Warning : The identifier : _12345678910111213141516171819202122232425 has been truncated to: _12345678910111213141516. _12345678910111213141516 = 10. -->
Be ware that the variables names are stores in the same space with function names. So if you name your variable the same as a function, Scilab will use the variable instead of function.
-->sin=89 Warning : redefining function: sin . Use funcprot(0) to avoid this message sin = 89. -->sin+18 ans = 107. -->cos+18 !--error 144 Undefined operation for the given operands. check or define function %fptr_a_s for overloading. -->clear sin -->sin+18 !--error 144 Undefined operation for the given operands. check or define function %fptr_a_s for overloading. -->
In the example above we have created a variable named sin
which will be used as a variable instead as a trigonometric function. Scilab warned me about this function redefining! After sin
declaration I can used it as an ordinary variable. This was not normally possible with a function (see example with cos
).
Even if it’s not recommended from the readability point of view, you can define a Scilab variable name as:
-->%#?!$_ = 123 %#?!$_ = 123. -->
Real numbers
Default coding for Scilab variables is in double precision, on 64 bits. So if you don’t specify the data type of the variable, Scilab will store it as double.
-->var1 = 3.6 var1 = 3.6 -->
Since all the variables are coded in a specific format they have an representation error. That means that the calculation done in Scilab are not exact but with a very good accuracy. Nevertheless the variable coding within Scilab is sufficient for the most of the applications.
In order to see the approximation for the example above we will change the display format of the variable to see the maximum number of digits:
-->format(25) -->var1 = 3.6 var1 = 3.6000000000000000888178 -->
You can clearly see that 3.6
is not represented exactly but approximately with a very good precision. More, if we want to check if Scilab is interpreting 3.6000000000000000888178
as 3.6
we will use the following code:
-->3.6 == var1 ans = T -->
where T
is a Scilab Boolean variable for „true”.
Constants – Special Scilab Variables
In Scilab are defined some special variables which are called constants. The names suggest that these variables can not change their values, they are constant. In order to access these variable the character „%” must be used at the beginning of the name.
Constant | Description / Properties | Value |
%pi | Greek letter π, sin(%pi/2) = 1 | 3.1415927 |
%e | Euler’s constant , log(%e) = 1 | 2.7182818 |
%eps | Greek letter ε | 2.2⋅10-16 |
%i | Imaginary unit | square root of -1 |
%inf | Infinity | 1/0 |
%nan | not a number | ∞ – ∞ |
%t | True (boolean) | 1 |
%f | False (boolean) | 0 |
%s | Polynomial expression | s=poly(0,”s”) |
%z | Polynomial expression | z=poly(0,”z”) |
The values of these variables can not be changed, they are protected to writing. If you try to assign a different value to any of them, Scilab will output an error message without taking into account the instruction:
-->%pi=5 !--error 13 Redefining permanent variable. -->%pi %pi = 3.1415927 -->%e=14 !--error 13 Redefining permanent variable. -->%e %e = 2.7182818 -->
These special Scilab variables are considered predefined, they can not be deleted nor saved using the save function. A part of these variables are defined in the scilab.start
file which can be found in SCI + “/etc”
folder.
Hint: Instead of %i
, the Scilab user can use sqrt(-1)
.
Environment Variables
For internal purposes Scilab uses some environment variables. The variables have the name written with uppercase fonts and they can be seen using who();
function. The check the values of these variables just type the name in the Scilab console and press <ENTER>.
Scilab Environment Variable | Description |
WSCI | Returns the path of Scilab installation (in Windows filename convention) |
MSDOS | Returns true (T) if Scilab is installed on Windows machine |
SCI | Returns the path to Scilab installation |
SCIHOME | Returns the path where Scilab configuration files are stored |
TMPDIR | Returns the path to the folder where Scilab stores temporary files |
If you want to see the modules that are installed within Scilab you can use this command:
-->ls(SCI + "/modules") <ENTER>
This is about it, for the first part of Scilab Variables tutorial. In the second tutorial we will discuss about complex numbers, strigs, matrices, lists and polynomials.
For any questions, observations and queries regarding Scilab variables use the comment form below.
Don’t forget to Like, Share and Subscribe!