Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - 日本語

Please note that the recommended version of Scilab is 6.0.0. This page might be outdated.
See the recommended documentation of this function

Справка Scilab >> Data Structures > list

list

объект Scilab'а и функция определения списка

Последовательность вызова

list(a1, ..., an)

Описание

Создаёт список list с элементами ai, которые являются произвольными объектами Scilab'а (matrix, list,...). Тип объекта list равен 15. list() создаёт пустой список (0 элементов).

Операции со списками

выделение

[x,y,z,...]=L(v), где v - вектор индексов; [x,y,z,...]=L(:) выделяет все элементы.

вставка на место индекса i

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)  // должен быть ноль

Смотрите также

  • null — удаление элемента в списке
  • lstcat — конкатенация списков
  • tlist — объект Scilab'а и определение типизированного списка
  • mlist — объект Scilab'а, определение матричноориентированного типизированного списка
  • вставка — частичное присвоение или модификация значения переменной
  • выделение — выделение элемента матрицы или списка
  • size — размер объекта
  • length — длина объекта
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Oct 02 14:01:08 CEST 2014