объект Scilab'а и функция определения списка
list(a1, ..., an)
Создаёт список list
с элементами
ai
, которые являются произвольными объектами Scilab'а (matrix
,
list
,...). Тип объекта list
равен 15. list()
создаёт пустой список (0 элементов).
[x,y,z,...]=L(v)
, где v
- вектор индексов;
[x,y,z,...]=L(:)
выделяет все элементы.
L(i)=a
(заметьте, что это не ошибка использовать L(i)=a
с
i > 1 + size(L)
, но
некоторые элементы списка тогда не определены, и их
выделение вызовет ошибку).
L($+1)=e
.
L(0)=e
.
![]() | После этой операции e имеет индекс 1, исходные элементы будут сдвинуты вправо. |
L(i)=null()
удаляет i
-тый элемент списка L
.
L3 = lstcat(L1,L2)
.
вы можете использовать либо nb_elm = size(L)
, либо nb_elm = length(L)
.
можно использовать список L
в цикле for:
for e=L,...,end
- цикл с числом
итераций length(L)
, переменная
цикла e
будет равна L(i)
на i
-той итерации.
Scilab предлагает также другие виды списков, тип tlist (типизированный список) и тип mlist (матричноориентированный список), которые полезны для определения нового типа данных с механизмом перегрузки операторов (гиперматрицы, которые являются многомерными массивами, в Scilab'е на самом деле имеют тип mlist).
Также доступны структуры struct Matlab'а.
l = list(1,["a" "b"]) // объявление основного списка с элементом типа // double и вектором двух строковых значений size(l) // размер равен 2 // l(0) - Не существует! l(1) // доступ к значению типа double l(2) // доступ к вектору строковых значений size(l(2)) // размер равен 1,2 l(0) = "foo" // вставка в начало списка // l(0) - по-прежнему не существует l(1) // равно "foo" l($+1) = "hello" // вставка в конец списка l(2) = "toto" // перезапись моего значения типа double l(3) = rand(1,2) // перезапись моего вектора строковых значений l(3) = null() // удаление третьего элемента lbis = list("gewurtz", "caipirina" ,"debug") // объявление нового списка lter = lstcat(l,lbis) // слияние двух списков size(lter) - size(lbis) - size(l) // должен быть ноль | ![]() | ![]() |