- Справка Scilab
- Основные функции
- Побитовые операции
- Комплексные числа
- Дискретная математика
- Элементарные матрицы
- логарифм - экспонента - степень
- Плавающая запятая
- Представление целых чисел
- Целые числа
- Манипуляции с матрицами
- Матричные операции
- Поиск и сортировка
- Операции с множествами
- Тригонометрия
- &, &&
- выделение
- ind2sub
- вставка
- isempty
- isequal
- modulo
- ndims
- |, ||
- size
- sub2ind
Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
выделение
выделение элемента матрицы или списка
Синтаксис
x(i) x(i,j) x(i,j,k,..) [...]=l(i) [...]=l(k1)...(kn)(i) or [...]=l(list(k1,...,kn,i)) l(k1)...(kn)(i,j) or l(list(k1,...,kn,list(i,j))
Аргументы
- x
матрица любого типа
- l
переменная-список
- i,j, k
индексы
- k1,...kn
индексы
Описание
- В СЛУЧАЕ МАТРИЦЫ
i
,j
,k
,.. могут быть:- вещественным скаляром или вектором или матрицей с положительными элементами.
r=x(i,j)
формирует матрицуr
такую, чтоr(l,k)=x(int(i(l)),int(j(k)))
дляl
от 1 доsize(i,'*')
иk
от 1 доsize(j,'*')
.Максимальное значение
i
(j
) должно быть меньше, либо равноsize(x,1)
(size(x,2)
).r=x(i)
с матрицейx
размером 1x1 формирует матрицуr
такую, чтоr(l,k)=x(int(i(l)),int(i(k)))
дляl
от 1 доsize(i,1)
иk
от 1 доsize(i,2)
.Заметьте, что в этом случае индекс
i
корректен только если все её элементы равны единице.r=x(i)
с вектор-столбцомx
формирует вектор-строкуr
такую, чтоr(l)=x(int(i(l)))
дляl
от 1 доsize(i,'*')
Максимальное значение
i
должно быть меньше, либо равноsize(x,'*')
.r=x(i)
с матрицейx
с одним или более столбцов формирует вектор-столбецr
такой, чтоr(l)
(l
от 1 доsize(i,'*')
) содержитint(i(l))
-тые элементы вектор-столбца, сформированного конкатенацией столбцов матрицыx
.Максимальное значение
i
должно быть меньше или равноsize(x,'*')
.
- символом "двоеточие"
:
означает "все элементы".
r=x(i,:)
формирует матрицуr
такую, чтоr(l,k)=x(int(i(l)),k))
дляl
от 1 доsize(i,'*')
иk
от 1 доsize(x,2)
.r=x(:,j)
формирует матрицуr
такую, чтоr(l,k)=x(l,int(j(k)))
дляl
от 1 доsize(r,1)
иk
от 1 доsize(j,'*')
.r=x(:)
формирует вектор-столбецr
, сформированный постолбцовой конкатенацией столбцов матрицыx
. Это эквивалентно инструкцииmatrix(x,size(x,'*'),1)
.
- вектором логических значений
Если индекс (
i
илиj
) является вектором логических значений, то он интерпретируется какfind(i)
или, соответственно,find(j)
.- полиномом
Если индекс (
i
илиj
) является вектором полиномов или подразумевается вектором полиномов, то он интерпретируется какhorner(i,m)
или, соответственно,horner(j,n)
гдеm
иn
относятся к размерам матрицыx
. Даже если эта возможность работает со всеми полиномами, рекомендуется использовать для удобочитаемости символ$
.
Для матриц, у которых больше двух размерностей (см. гиперматрицы) степень размерности автоматически уменьшается, когда самые крайние правые размерности равны 1.
- В СЛУЧАЕ СПИСКА (LIST) ИЛИ ТИПИЗИРОВАННОГО СПИСКА (TLIST)
В этом случае
ki
указывает путь до элемента подсписка структуры данныхl
. Разрешено рекурсивное выделение без промежуточных копий. Инструкции[...]=l(k1)...(kn)(i)
и
[...]=l(list(k1,...,kn,i))
интерпретируются как:
lk1 = l(k1)
.. = ..
lkn = lkn-1(kn)
[...] = lkn(i)
.А инструкции
l(k1)...(kn)(i,j)
иl(list(k1,...,kn,list(i,j))
интерпретируются как:lk1 = l(k1)
.. = ..
lkn = lkn-1(kn)
lkn(i,j)
Когда путь указывает более одного элемента списка,то инструкция должна иметь столько аргументов слева, сколько выбрано элементов. Однако, если синтаксис выделения используется внутри вызывающей последовательности ввода функции, то каждый возвращаемый элемент списка добавляется к вызывающей последовательности функции.
Заметьте, что
l(list())
-- это то же самое, что иl
.- i и j могут быть:
- вещественными скалярами или векторами или матрицами с положительными элементами.
[r1,...rn]=l(i)
выделяет элементыi(k)
из спискаl
и хранит их в переменныхrk
, гдеk
от 1 доsize(i,'*')
.- символом "двоеточие"
который ставится для "всех элементов".
- вектором логических значений.
Если
i
является вектором логических значений, то он интерпретируется какfind(i)
.- полиномом
Если
i
является вектором полиномов или вектором неявных полиномов, то он интерпретируется какhorner(i,m)
, гдеm=size(l)
. Даже если эта возможность работает со всеми полиномами, рекомендуется использовать для удобочитаемости символ$
.
- k1 ... kn могут быть:
- вещественным положительным скаляром
- полиномом
интерпретируемым как
horner(ki,m)
, гдеm
-- соответствующий размер подсписка.- символьной строкой
связанной с именем элемента подсписка.
Примечания
Для программно определяемых типов матриц, таких как рациональные функции
и линейные системы в пространстве состояний, синтаксис x(i)
нельзя использовать для выделения элемента вектора из-за путаницы с выделением
элемнта списка. Нужно использовать синтаксис x(1,j)
или
x(i,1)
.
Примеры
// В СЛУЧАЕ МАТРИЦЫ a=[1 2 3;4 5 6] a(1,2) a([1 1],2) a(:,1) a(:,3:-1:1) a(1) a(6) a(:) a([%t %f %f %t]) a([%t %f],[2 3]) a(1:2,$-1) a($:-1:1,2) a($) // x='test' x([1 1;1 1;1 1]) // b=[1/%s,(%s+1)/(%s-1)] b(1,1) b(1,$) b(2) // числитель // в случае LIST или TLIST l=list(1,'qwerw',%s) l(1) [a,b]=l([3 2]) l($) x=tlist(l(2:3)) // формирование типизированного списка с двумя последними компонентами l // dts=list(1,tlist(['x';'a';'b'],10,[2 3])); dts(2)('a') dts(2)('b')(1,2) [a,b]=dts(2)(['a','b'])
Смотрите также
- find — find indices of boolean vector or matrix true elements
- horner — polynomial/rational evaluation
- круглые скобки — ( ) левая и правая круглые скобки
- вставка — частичное присвоение или модификация значения переменной
Report an issue | ||
<< &, && | Основные функции | ind2sub >> |