Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2024.1.0 - Русский


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 — deletes a list component or a field of a structure, Mlist, or Tlist
  • lstcat — конкатенация списков
  • list2vec — Concatenates list entries in a matrix.
  • vec2list — Inverse function of list2vec.
  • tlist — объект Scilab'а и определение типизированного списка
  • mlist — объект Scilab'а, определение матричноориентированного типизированного списка
  • вставка — частичное присвоение или модификация значения переменной
  • выделение — выделение элемента матрицы или списка
  • size — размер объекта
  • length — Количество символов текста. Количество элементов массива или списка.
Report an issue
<< isstruct Data Structures list2vec >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Jun 17 17:55:07 CEST 2024