MATLAB, otomatik bellek yönetimi ile dinamik yazmayı kullanır. Bu, kullanmadan önce sabit bir boyutta bir matris bildirmeniz gerekmediği anlamına gelir - siz değiştirirken değiştirebilirsiniz ve MATLAB sizin için belleği dinamik olarak ayıracaktır.
ama bu ilk matris için bellek ayırmaya daha verimli bir şekilde ve sonra bunu kullanmak. Ancak, programlarınız bu tür bir esnekliğe ihtiyaç duyuyorsa, bunun için gidin.
Sanırım matrisinize satır eklemeye devam etmeniz gerekiyor. Aşağıdaki kod çalışmalıdır. İşte
Matrix = [];
while size(Matrix,1) <= 10
Matrix = [Matrix;rand(1,2)];
end
disp(Matrix);
, dinamik olarak Matrix
için yeni bir satır eklemek her zaman gereken alanı yeniden tahsis ediyoruz. Önceden tanımlayacağınız satırların sayısı üzerinde bir üst sınır olduğunu biliyorsanız, Matrix = zeros(20,2)
bildirebilir ve sonra her bir satırı matrisin içine kademeli olarak ekleyebilirsiniz.
% 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,:) = [];
Ayrıca ve yinelemeleri göstermek gerekir;:
testlerin tam set için buraya bakınız Sprintf'i Euler uygulamanızda kullanabilirsiniz. – ccook
Başka bir soru: [Bir boş MATLAB matrisine vektör ekleme] (http://stackoverflow.com/q/781410/97160) – Amro