Я считаю, MikeT правильно: вы не можете переопределить размер переменной во встроенной функции. Если вы посмотрите на эту страницу документации Встроенная функция MATLAB в подразделе Определение локальных переменных , там написано:
Как только вы определите переменную, вы не сможете
переопределить его для любого другого типа или размера
в теле функции.
Вам нужно будет переделать вашу встроенную функцию так, чтобы объявленные вами переменные не меняли размер. Поскольку я не знаю, что вы впоследствии делаете с переменной f
, я не смогу оказать вам больше помощи по .
В общем, если вам абсолютно необходимо для использования данных, которые изменяют размер, одним из решений является заполнение данных «мусорными» значениями для поддержания постоянного размера. Например:
MAX_ELEMS = 1000; % Define the maximum number of elements in the vector
f = [fstart:MAX_ELEMS nan(1,fstart-1)]; % Create vector and pad with NaNs
В приведенном выше примере переменная f
всегда будет иметь 1000 элементов (при условии, что значение fstart
является целочисленным значением, меньшим или равным 1000). Значение NaN
используется для дополнения вектора до соответствующего постоянного размера. Любой последующий код должен иметь возможность распознавать, что значение NaN
должно игнорироваться. В зависимости от того, какие вычисления впоследствии выполняются во встроенной функции, могут потребоваться различные значения площадок вместо NaN
(например, 0, отрицательные значения и т. Д.).