Поддерживаемые операции для векторов и матриц

Графики Stateflow® в моделях Simulink® имеют свойство языка действия, которое задает синтаксис, который вы используете, чтобы вычислить с векторами и матрицами. Свойства языка действия:

  • MATLAB® как язык действия.

  • C как язык действия.

Для получения дополнительной информации смотрите Различия Между MATLAB и C как Синтаксис языка Действия.

Индексация обозначения

В графиках, которые используют MATLAB в качестве языка действия, обратитесь к элементам вектора или матрицы при помощи индексации на основе одной, разграниченной круглыми скобками. Отдельные индексы для различных размерностей с запятыми.

В графиках, которые используют C в качестве языка действия, обратитесь к элементам вектора или матрицы при помощи основанной на нуле индексации, разграниченной скобками. Заключите индексы для различных размерностей в их собственной паре скобок.

Пример

MATLAB как язык действия

C как язык действия
Первый элемент векторного VV(1)V[0]
i th элемент векторного VV(i)V[i-1]
Элемент в строке 4 и столбец 5 матричного MM(4,5)M[3][4]
Элемент в строке i и столбец j матричного MM(i,j)M[i-1][j-1]

Бинарные операции

Эта таблица суммирует интерпретацию всех бинарных операций на векторных и матричных операндах согласно их порядку очередности (1 = самый высокий, 3 = самый низкий). Бинарные операции левоассоциативны так, чтобы в любом выражении операторы с тем же приоритетом были оценены слева направо. За исключением умножения матриц и операторов деления в графиках, которые используют MATLAB в качестве языка действия, все бинарные операторы выполняют поэлементные операции.

Операция

Приоритет

MATLAB как язык действия

C как язык действия

a * b

1

Умножение матриц.

Поэлементное умножение. Для умножения матриц используйте операцию * в функции MATLAB.

a .* b

1

Поэлементное умножение.

Не поддерживаемый. Используйте операцию a * b.

a / b

1

Матричное правильное деление.

Поэлементное правильное деление. Для матричного правильного деления используйте операцию / в функции MATLAB.

a ./ b

1

Поэлементное правильное деление.

Не поддерживаемый. Используйте операцию a / b.

a \ b

1

Матрица покинула деление.

Не поддерживаемый. Используйте операцию \ в функции MATLAB.

a .\ b

1

Поэлементное покинутое деление.

Не поддерживаемый. Используйте операцию .\ в функции MATLAB.

a + b

2

Сложение.

Сложение.

a - b

2

Вычитание.

Вычитание.

a == b

3

Сравнение, равное.

Сравнение, равное.

a ~= b

3

Сравнение, не равное.

Сравнение, не равное.

a != b

3

Не поддерживаемый. Используйте операцию a ~= b.

Сравнение, не равное.

a <> b

3

Не поддерживаемый. Используйте операцию a ~= b.

Сравнение, не равное.

Унарные операции и действия

Эта таблица суммирует интерпретацию всех унарных операций и действий с векторными и матричными операндами. Унарные операции:

  • Имейте более высокий приоритет, чем бинарные операторы.

  • Правоассоциативны так, чтобы в любом выражении они были оценены справа налево.

  • Выполните поэлементные операции.

Пример

MATLAB как язык действия

C как язык действия

~a

Логический НЕТ. Для битового "НЕ" используйте функцию bitcmp.

  • Битовое "НЕ" (значение по умолчанию). Включите эту операцию путем выбора Разрешения свойства диаграммы операций C-bit.

  • Логический НЕТ. Включите эту операцию путем очистки Разрешения свойства диаграммы операций C-bit.

Смотрите включают операции C-Bit.

!a

Не поддерживаемый. Используйте операцию ~a.

Логический НЕТ.

-a

Отрицательный.

Отрицательный.

a++

Не поддерживаемый.

Постепенно увеличьте все элементы вектора или матрицы. Эквивалентный a = a+1.

a--

Не поддерживаемый.

Постепенно уменьшите все элементы вектора или матрицы. Эквивалентный a = a-1.

Операции присвоения

Эта таблица суммирует интерпретацию операций присвоения на векторных и матричных операндах.

Операция

MATLAB как язык действия

C как язык действия

a = b

Простое присвоение.

Простое присвоение.

a += b

Не поддерживаемый. Используйте выражение a = a+b.

Эквивалентный a = a+b.

a -= b

Не поддерживаемый. Используйте выражение a = a-b.

Эквивалентный a = a-b.

a *= b

Не поддерживаемый. Используйте выражение a = a*b.

Эквивалентный a = a*b.

a /= b

Не поддерживаемый. Используйте выражение a = a/b.

Эквивалентный a = a/b.

Присвойте значения отдельным элементам матрицы

Можно присвоить значение отдельной записи вектора или матрицы при помощи синтаксиса, соответствующего языку действия графика.

Пример

MATLAB как язык действия

C как язык действия
Присвойте значение 10 первому элементу векторного V.V(1) = 10;V[0] = 10;
Присвойте значение 77 элементу в строке 2 и столбце 9 матричного M.M(2,9) = 77;M[1][8] = 77;

Присвойте значения всем элементам матрицы

В графиках, которые используют MATLAB в качестве языка действия, можно указать все элементы вектора или матрицы в отдельном операторе. Например, это действие присваивает каждый элемент 2 3 матричного A к различному значению:

A = [1 2 3; 4 5 6];

В графиках, которые используют C в качестве языка действия, можно использовать скалярное расширение, чтобы установить все элементы вектора или матрицы к тому же значению. Например, это действие устанавливает все элементы матричного A к 10:

A = 10;
Графики, которые используют MATLAB в качестве языка действия, не поддерживают скалярное расширение. Для получения дополнительной информации смотрите, Преобразовывают Скаляры в Нескаляры при помощи Скалярного Расширения.

Похожие темы