Следующие общие ограничения применяются к нескольким функциям панели инструментов, но только для создания кода. Чтобы определить, какие из этих ограничений применяются к определенным библиотечным функциям, см. таблицу в разделе Функции панели инструментов с ограничениями для данных переменного размера.
Входные данные библиотечной функции должны быть векторами переменной длины или векторами фиксированного размера. Вектор переменной длины - это массив переменного размера, имеющий форму 1x:n или :nx1 (одно измерение имеет переменный размер, а другое - фиксированный размер 1). Другие фигуры не разрешены, даже если они являются векторами во время выполнения.
Это ограничение применяется к функциям, принимающим рабочее измерение (измерение, по которому следует работать) в качестве входных данных. Если в MATLAB ® и в генерации кода рабочее измерение не предоставляется, функция выбирает его. В MATLAB функция выбирает первый размер, размер которого не равен 1. Для создания кода функция выбирает первое измерение, имеющее переменный размер или фиксированный размер, не равный 1. Если рабочее измерение имеет переменный размер и становится 1 во время выполнения, то рабочее измерение отличается от рабочего измерения в MATLAB. Поэтому при включенной проверке ошибок во время выполнения может возникнуть ошибка.
Например, предположим, что X является матрицей переменного размера с размерами 1x:3x:5. В созданном коде sum(X) ведет себя как sum(X,2). В MATLAB, sum(X) ведет себя как sum(X,2) если size(X,2) равно 1. В MATLAB, когда size(X,2) равно 1, sum(X) ведет себя как sum(X,3).
Чтобы избежать этой проблемы, укажите предполагаемое рабочее измерение явно как постоянное значение. Например, sum(X,2).
Функция выдает ошибку, когда массив переменного размера, не являющийся вектором переменной длины, принимает форму вектора во время выполнения. Чтобы избежать проблемы, укажите входные данные явно в виде вектора переменной длины вместо массива переменного размера.
Функция выдает ошибку, если массив переменного размера принимает скалярное значение во время выполнения. Чтобы избежать этой проблемы, укажите скаляры в качестве фиксированного размера.
В следующей таблице перечислены функции, имеющие ограничения на создание кода для данных переменного размера. Дополнительные ограничения для этих функций и ограничения для всех функций и объектов, поддерживаемых при создании кода, см. в разделе Функции и объекты, поддерживаемые при создании кода C/C + +.
| Функция | Ограничения для данных переменного размера |
|---|---|
all |
|
any |
|
cat |
|
conv |
|
cov |
|
cross |
|
deconv |
|
detrend |
|
diag |
|
diff |
|
fft |
|
filter |
|
hist |
|
histc |
|
ifft |
|
ind2sub |
|
interp1 |
|
ipermute |
|
issorted |
|
magic |
|
max |
|
maxk |
|
mean |
|
median |
|
min |
|
mink |
|
mode |
|
mtimes | Рассмотрим умножение |
nchoosek |
|
permute |
|
planerot |
|
poly |
|
polyfit |
|
prod |
|
rand |
|
randi |
|
randn |
|
reshape |
|
roots |
|
shiftdim |
|
sort |
|
std |
|
sub2ind |
|
sum |
|
trapz |
|
typecast |
|
var |
|
vecnorm |
|