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 - 日本語 -
Справка Scilab >> Scilab > Ключевые слова Scilab > вставка

вставка

частичное присвоение или модификация значения переменной

присвоение

частичное присвоение значения переменной

Синтаксис

x(i,j)=a
x(i)=a
l(i)=a
l(k1)...(kn)(i)=a или l(list(k1,...,kn,i))=a
l(k1)...(kn)(i,j)=a или l(list(k1,...,kn,list(i,j))=a

Аргументы

x

матрица любого типа (constant, sparse, polynomial,...)

l

list

i,j

индексы

k1,...kn

индексы с целочисленными значениями

a

новое значение элемента

Описание

В СЛУЧАЕ МАТРИЦЫ

Если x является матрицей, то индексы i и j могут быть:

вещественными скалярами или векторами или матрицами

В этом случае значения, указанные как индексы, должны быть положительными и учитывается лишь их целая часть.

  • Если a является матрицей с размерами (size(i,'*'),size(j,'*')), то x(i,j)=a возвращает новую матрицу x такую, как x(int(i(l)),int(j(k)))=a(l,k) для l от 1 до size(i,'*') и k от 1 до size(j,'*'), другие изначальные элементы x остаются неизменными.

  • Если a является скаляром, то x(i,j)=a возвращает новую матрицу x такую, как x(int(i(l)),int(j(k)))=a для l от 1 до size(i,'*') и k от 1 до size(j,'*'), другие изначальные элементы x остаются неизменными.

  • Если максимальное значение i или j превосходит соответствующие размеры матрицы x, то массив x сначала расширяется до требуемых размеров нулевыми элементами для стандартных матриц, символьными строками нулевой длины для строковых матриц и значениями "ложь" для матриц логических значений.

  • x(i,j)=[] удаляет строки, определённые через i, если j совпадает со всеми столбцами x или удаляет столбцы, определённые через j, если i совпадает со всеми строками x. В других случаях x(i,j)=[] формирует ошибку.

  • x(i)=a, где a -- вектор, возвращает новую матрицу x, такую что x(int(i(l)))=a(l) для l от 1 до size(i,'*'), другие изначальные элементы x являются неизменными.

  • x(i)=a, где a -- скаляр, возвращает новую матрицу x, такую что x(int(i(l)))=a для l от 1 до size(i,'*'), другие изначальные элементы x являются неизменными.

    Если максимальное значение i превосходит size(x,1), то x сначала расширяется до требуемого размера нулевыми элементами для стандартных матриц, символьными строками нулевой длины для строковых матриц и значениями "ложь" для матриц логических значений.

    если

    x является скаляром (1x1)

    матрица a может быть вектор-строкой (соответственно вектор-столбцом) размером size(i,'*'). Результирующая матрица x является вектором-строкой (соответственно вектор-столбцом);

    если

    x является вектор-строкой

    вектор a должен быть вектор-строкой размером size(i,'*');

    если

    x является вектор-столбцом

    вектор a должен быть вектор-столбцом размером size(i,'*');

    если

    x в общем виде

    матрица a должна быть вектор-строкой или вектор-столбцом размером size(i,'*') и максимальное значение i не может превосходить size(x,'*').

  • x(i)=[] удаляет элементы, определённые через i.

символом "двоеточие"

Символ двоеточие : означает "все элементы".

  • x(i,:)=a интерпретируется как x(i,1:size(x,2))=a

  • x(:,j)=a интерпретируется как x(1:size(x,1),j)=a

  • x(:)=a возвращает в x матрицу a, элементы которой переставлены в соответсвии с размерами x. Размер size(x,'*') должен быть равен размеру size(a,'*').

векторами логических значений

Если индекс (i или j) задан в виде вектора логических значений, то он интерпретируется как find(i) или, соответственно, find(j).

полиномами

Если индекс (i или j) задан в виде полиномов или в виде неявного вектора полиномов, то он интерпретируется как horner(i,m) или, соответственно, horner(j,n), где m и n связаны с размерами x. Даже если это работает для всех полиномов, рекомендуется использовать символ $ для удобочитаемости.

В СЛУЧАЕ СПИСКА (LIST) ИЛИ ТИПИЗИРОВАННОГО СПИСКА (TLIST)
  • If they are present the ki give the path to a sub-list entry of l data structure. They allow a recursive insertion without intermediate copies. The l(k1)...(kn)(i)=a and l(list(k1,...,kn,i)=a) instructions are interpreted as:

    lk1 = l(k1)

    .. = ..

    lkn = lkn-1(kn)

    lkn(i) = a

    lkn-1(kn) = lkn

    .. = ..

    l(k1) = lk1

    А инструкции l(k1)...(kn)(i,j)=a и l(list(k1,...,kn,list(i,j))=a интерпретируется как:

    lk1 = l(k1)

    .. = ..

    lkn = lkn-1(kn)

    lkn(i,j) = a

    lkn-1(kn) = lkn

    .. = ..

    l(k1)= lk1

  • i может быть:

    • вещественным неотрицательным скаляром. l(0)=a добавляет элемент к списку "слева". l(i)=a присваивает элементу i списка l значение a. Если i>size(l), то l сначала расширяется элементами нулевой длины (неопределённые). l(i)=null() удаляет 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)=10
a([1 1],2)=[-1;-2]
a(:,1)=[8;5]
a(1,3:-1:1)=[77 44 99]
a(1)=%s
a(6)=%s+1
a(:)=1:6
a([%t %f],1)=33
a(1:2,$-1)=[2;4]
a($:-1:1,1)=[8;7]
a($)=123
//
x='test'
x([4 5])=['4','5']
//
b=[1/%s,(%s+1)/(%s-1)]
b(1,1)=0
b(1,$)=b(1,$)+1
b(2)=[1 2] // числитель

// в случае LIST или TLIST
l=list(1,'qwerw',%s)
l(1)='Changed'
l(0)='Added'
l(6)=['one more';'added']
//
//
dts=list(1,tlist(['x';'a';'b'],10,[2 3]));
dts(2).a=33
dts(2)('b')(1,2)=-100

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

  • find — find indices of boolean vector or matrix true elements
  • horner — polynomial/rational evaluation
  • круглые скобки — ( ) левая и правая круглые скобки
  • выделение — выделение элемента матрицы или списка
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Feb 14 15:13:18 CET 2017