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 >> Основные функции > вставка

вставка

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

присвоение

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

Синтаксис

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. Даже если это работает для всех полиномов, рекомендуется использовать символ $ для удобочитаемости.

Случай простых списков или типизированных списков (tlist)
  • Если они имеются в наличии, то ki указывают путь до элемента подсписка структуры данных l. Они позволяются рекурсивную вставку без промежуточных копий. Инструкции l(k1)...(kn)(i)=a и l(list(k1,...,kn,i)=a) интерпретируются следующим образом:

    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 — даёт индексы элементов с ненулевым значением или значением %T
  • круглые скобки — ( ) левая и правая круглые скобки
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Jul 20 11:21:24 CEST 2021