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 >> Data Structures > type

type

возвращает тип переменной

Синтаксис

i = type(x)

Аргументы

x

объект Scilab'а.

i

целое число.

Описание

type(x) возвращает целое число, которое равно типу x:

1
матрица вещественных или комплексных значений удвоенной точности (double).
2
матрица полиномов.
4
матрица логических значений.
5
разрежённая матрица.
6
разрежённая матрица логических значений.
7
разрежённая матрица Matlab'а.
8
матрица целочисленных значений, хранимых в 1 (int8), 2 (int16) , 4 (int32) или 8 (int64) байтах.
9
матрица графических дескрипторов.
10
матрица символьных строк.
13
компилированная функция (Scilab code).
14
библиотека функций.
15
список (list).
16
типизированный список (tlist).
17
матричноориентированный типизированный список (mlist).
128
идентификатор блока Xcos, результата lufact() и т. д.
129
размер неявного многочлена, используемый для индексации.
130
встроенная функция Scilab'а, называемая также шлюзом (код C, C++ или Fortran).
0
Неопределённый компонент простого списка. Такой компонент может быть в качестве опущенного входного аргумента при вызове Scilab-функции, как, например, в foo(a,,b): внутри функции отсутствующий аргумент определён, но он нулевого типа. Определение L=list(%pi,,%i,,,%z) создаёт L(2) типа 0, и т.д. Для этих объектов isdef() возвращает %T, но их нулевой тип может быть проверен с помощью type().

Примечания

Некоторые данные могут быть сохранены в настраиваемых контейнерах, определённых как типовые списки типа 16 (tlist) или 17 (матрично-ориентированный типизированный список mlist). Это также и случай для встроенных типов, как например (рациональные числа), (структуры), пространство состояний state-space, интерактивные деревья (uitree), и т.д., для которых type(..) вернёт 16 или 17. Нужно использовать typeof для получения более детальной информации об их действительном (под)типе.

Преобразование типов в смешанных операциях:

Когда бинарный оператор (например, умножение) или n-арный итерационный оператор (например, конкатенация) применяется межжду двумя операндами различных, но совместных типов, обычно тип одного из двух неявно конвертируется, а другой операнд устанавливает тип результата к своему собственному типу.

Примеры с конкатенацией : [%t, 3.124], [int8(5), 3.124], и т.д.

Для конкатенации, сложения, вычитания, умножения, деления и возведения в степень иерархия между типами операндов следующая (читай "A < B": B устанавливает свой тип для A) :

  • логическое < (десятичное значение, комплекснозначное)
  • (десятичное число, комплекснозначное число) < кодированное целое.
  • полиномиальное значение (вещественное | комплексное) < рациональное значение (вещественное | комплексное)

Примеры

// Выберите строки, щелкните их правой кнопкой мыши и выберите «Execute ..», чтобы запустить их
L = list(%pi,,"abc");
type(L(2))                  // неопределённый компонент списка

type(42)                    // десятичные числа
type(%nan)
type(%inf)

type(1+%i)                  // комплекснные числа

s = sparse([1,2;4,5;3,10],[1,2,3]);
type(s)                     // разрежённые десятичные или комплексные числа

type(%t)                    // логические значения

type(s>2)                   // разрежённые логические значения

g = int8([1 -120 127 312]); // кодированные целые числа
type(g)
type(1.23 * int8(4))

type(1-%z+%z^2)             // полиномиальные значения

type(gdf())                 // указатели на графические окна

type("foo")                 // текстовые значения

deff('[x] = mymacro(y,z)',['a=3*y+1'; 'x=a*z+y']);
type(mymacro)               // функции Scilab

type(disp)                  // Встроенные фукнции

l = list(1,["a" "b"]);      // простые списки
type(l)

e = tlist(["listtype","field1","field2"], [], []);
type(e)                     // типизированный список

h = mlist(['V','name','value'],['a','b';'c' 'd'],[1 2; 3 4]);
type(h)                     // типизированный матрично-ориентированный список

clear s, s.r = %pi          // структуры
type(s)

c = {%t %pi %i %z "abc" s}  // cell-массивы
type(c)

r = [%z/(1-%z) (1-%z)/%z^2]
type(r)                     // рациональные дроби

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

  • typeof — explicit type or overloading code of an object
  • inttype — возвращает тип целых чисел, используемых в типах целочисленных данных
  • isreal — проверка, имеет ли переменная вещественные или комплексные элементы
  • квадратные скобки — Concatenation. Recipients of an assignment. Results of a function
  • перегрузка — возможности перегрузки отображения, функций и операторов
  • poly — определение полинома
  • rational — объекты Scilab, рациональное число в Scilab
  • tlist — объект Scilab'а и определение типизированного списка
  • mlist — объект Scilab'а, определение матричноориентированного типизированного списка

История

VersionDescription
6.0
  • Тип 11 был удалён. Он использовался для некомпилировнных Scilab-функций.
  • type(:) теперь возвращает 129 вместо 1.
  • Назначение объекта типа 0 переменной больше не удаляет её.
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Feb 12 20:08:39 CET 2018