Вам не нужно объявлять свои матрицы в Matlab. Ваш код будет работать.
Как правило, быстрее, если вы предварительно выделяете память, используя ones
или zeros
для своих матриц. В противном случае Matlab должен продолжать перераспределять память при изменении размера матрицы.
Пример
% Slow
x(1) = 3; % x is now 1 by 1
x(5) = 9; % Matlab has to reallocate memory to increase x to be 1 by 5
x(10) = 2; % And another reallocation to increase x to be 1 by 10
% Better
y = zeros(1,10); % preallocate memory for the matrix
y(1) = 3;
y(5) = 9;
y(10) = 2;
% One-liner
z([1 5 10]) = [3 9 2]; % you can assign multiple values at once
Preallocation помогает больше всего, когда вам нужно использовать циклы
a = zeros(1,100)
for i=1:100
a(i) = i^2;
end
Еще лучше, если вы можете векторизовать код, чтобы вам не приходилось использовать цикл for
a = (1:100).^2;