Моделирование в системе MATLAB. Часть 1. Основы работы в MATLAB. Терёхин В.В. - 228 стр.

UptoLike

Составители: 

226
Допустим, что мы решили добавить класс объектов rational, и
тогда ожидается появление смешанных выражений, которые включа-
ют полиномы и рациональные функции. Причем класс rational дол-
жен находиться выше в иерархии классов, чем класс polynom. Это
может быть реализовано указанием в конструкторе
@rational/rational.m оператора superiorto('polynom'). При этом в
методы класса polynom никаких
изменений не вносится.
Тогда выражения типа p + r, r + p, p*r и r*p, включающие
полином p и рациональную функцию r будут использовать методы,
определенные в конструкторе.
Функция inferiorto('class_A') устанавливает более низкий
приоритет объектов других классов по отношению к объектам класса,
указанного в качестве аргумента; иначе говоря, объекты класса
class_A имеют наивысший приоритет.
Индексация объектов
Общее
правило состоит в том, что индексации объектов ана-
логична индексации структур.
Индексная ссылка. Использование индекса или указателя
поля в правой части оператора присваивания называется индексной
ссылкой. В этих случаях вызывается метод subsref, реализованный в
виде встроенной функции. Соответствующие выражения могут иметь
следующий вид A(I), A{I}, A.field. Каждый из них приводит к вызову
метода subsref в форме
B = subsref(A, S)
Второй аргумент S является структурой с двумя полями. Поле
S.type - строка, содержащая символы '( )', '{ }' или '.', которые опре-
деляют тип индекса. Круглые скобки соответствуют числовому мас-
сиву; фигурные - массиву ячеек; точка - структуре. Поле S.subs - мас-
сив ячеек или строка, содержащая фактические индексы. Двоеточие,
используемое как
индекс, соответствует строковой переменной ':'.
Например, выражение A(1:2, :) вызывает метод subsref(A, S), где S -
структура размера 1х1 вида
S.type = '( )'
S.subs = {1:2, ':'}
Выражение A{1:2} вызывает метод subsref(A, S), где S -
структура вида
S.type ='{ }'
S.subs = {1:2}.
Выражение A.field вызывает метод subsref(A, S), где S -
структура вида
        Допустим, что мы решили добавить класс объектов rational, и
тогда ожидается появление смешанных выражений, которые включа-
ют полиномы и рациональные функции. Причем класс rational дол-
жен находиться выше в иерархии классов, чем класс polynom. Это
может быть реализовано указанием в конструкторе
@rational/rational.m оператора superiorto('polynom'). При этом в
методы класса polynom никаких изменений не вносится.
        Тогда выражения типа p + r, r + p, p*r и r*p, включающие
полином p и рациональную функцию r будут использовать методы,
определенные в конструкторе.
        Функция inferiorto('class_A') устанавливает более низкий
приоритет объектов других классов по отношению к объектам класса,
указанного в качестве аргумента; иначе говоря, объекты класса
class_A имеют наивысший приоритет.

                      Индексация объектов
       Общее правило состоит в том, что индексации объектов ана-
логична индексации структур.

         Индексная ссылка. Использование индекса или указателя
поля в правой части оператора присваивания называется индексной
ссылкой. В этих случаях вызывается метод subsref, реализованный в
виде встроенной функции. Соответствующие выражения могут иметь
следующий вид A(I), A{I}, A.field. Каждый из них приводит к вызову
метода subsref в форме
           B = subsref(A, S)
         Второй аргумент S является структурой с двумя полями. Поле
S.type - строка, содержащая символы '( )', '{ }' или '.', которые опре-
деляют тип индекса. Круглые скобки соответствуют числовому мас-
сиву; фигурные - массиву ячеек; точка - структуре. Поле S.subs - мас-
сив ячеек или строка, содержащая фактические индексы. Двоеточие,
используемое как индекс, соответствует строковой переменной ':'.
Например, выражение A(1:2, :) вызывает метод subsref(A, S), где S -
структура размера 1х1 вида
           S.type = '( )'
           S.subs = {1:2, ':'}
         Выражение A{1:2} вызывает метод subsref(A, S), где S -
структура вида
           S.type ='{ }'
           S.subs = {1:2}.

       Выражение A.field вызывает метод subsref(A, S), где S -
структура вида
226