MATLAB sử dụng tính năng nhập động với quản lý bộ nhớ tự động. Điều này có nghĩa, bạn không cần phải khai báo một ma trận có kích thước cố định trước khi sử dụng nó - bạn có thể thay đổi nó khi bạn đi và MATLAB sẽ tự động cấp phát bộ nhớ cho bạn.
NHƯNG nó là cách hiệu quả hơn để cấp phát bộ nhớ cho ma trận đầu tiên và sau đó sử dụng nó. Nhưng nếu các chương trình của bạn cần loại tính linh hoạt này, hãy thực hiện nó.
Tôi đoán bạn cần phải tiếp tục thêm hàng vào ma trận của mình. Mã sau đây sẽ hoạt động.
Matrix = [];
while size(Matrix,1) <= 10
Matrix = [Matrix;rand(1,2)];
end
disp(Matrix);
Ở đây, chúng tôi đang phân bổ lại không gian cần thiết cho Matrix
mỗi lần bạn thêm hàng mới. Nếu bạn biết trước, nói, một giới hạn trên về số lượng hàng bạn sẽ có, bạn có thể khai báo Matrix = zeros(20,2)
và sau đó chèn mỗi hàng vào ma trận gia tăng.
% Allocate space using the upper bound of rows (20)
Matrix = zeros(20,2);
k = 1;
for k = 1:10
Matrix(k,:) = rand(1,2);
end
% Remove the rest of the dummy rows
Matrix(k+1:end,:) = [];
Ngoài ra, nếu đây là nhiệm vụ của lớp và bạn cần hiển thị các lần lặp; bạn có thể sử dụng sprintf trong việc thực hiện Euler của bạn. – ccook
Một câu hỏi liên quan khác: [Gắn thêm vectơ vào ma trận MATLAB trống] (http://stackoverflow.com/q/781410/97160) – Amro