Да. Каждый раз, когда вы ходите, ваш outderif
блокирует размер Symbol_Chip
, который дорого. Вместо этого перепишите свой код, чтобы у вас есть (сказать) Symbol_Chip = Zeros (MAX_SIZE, 1);
Перед циклом. Затем измените содержимое, но не размер Symbol_Chip
.
Вам нужно немного изменить свой подход, но это будет намного быстрее, если вы сделаете. Если вы не раздражены нынешней скоростью, ничего не меняйте!
M-LINT бросит это предупреждение, если у вас есть переменная, которая растет внутри цикла без предварительной обработки. Вы можете удалить эту ошибку, предварительно выделяя переменную коллекции.
Например, если вы знаете, что переменная Symbol_Chip будет иметь у большинства элементов i * j, вы могли бы отрастить его с оператором:
symbol_chip = zeros(i*j);
Однако для большинства приложений Preallocation будет иметь незначительное влияние на производительность алгоритма. Я только что беспокоился об этом, если вы имеете дело с очень большим набором данных.