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


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 — проверка, имеет ли переменная вещественные или комплексные элементы
  • квадратные скобки — Конкатенация. Получатели присвоения. Результаты функции.
  • перегрузка — возможности перегрузки отображения, функций и операторов
  • poly — Определение полинома через указанные корни или коэффициенты или определение характеристического полинома квадратной матрицы.
  • rational — объекты Scilab, рациональное число в Scilab
  • tlist — объект Scilab'а и определение типизированного списка
  • mlist — объект Scilab'а, определение матричноориентированного типизированного списка

История

ВерсияОписание
6.0 Тип 11 был удалён. Он использовался для некомпилировнных Scilab-функций.
Report an issue
<< strings types typename >>

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:
Tue Mar 07 09:28:37 CET 2023