2012-01-12 168 views

回答

2

嘗試使用zeros函數,而不是創建一個循環內的陣列。

是這樣的:

B = zeros(m,n) 
A = zeros(m,n) 

這將是最初快得多(因爲陣列不是具有每次添加的元素的時間來調整大小);你可以稍後迭代它並添加你需要的任何值。

編輯:我應該澄清,零功能創建一個m×n矩陣(或一個數組,如果你離開第二個參數)並填充全零。這是構建大型數組的一個很好的起點。

4

您可以創建在其中存儲矩陣單元:

a = cell(10,1); 
for n=1:10 
    a{n} = zeros(n*100,n*100); 
end 

注:從電池獲得一個項目,你應該使用{}而不是()。 {1}返回第一個矩陣,a(1)返回一個包含該矩陣的單元。

http://www.mathworks.nl/help/techdoc/ref/cell.html

+1

如果你事先知道數組的大小,你應該預先分配。即寫'a = cell(10,1);' – Jonas 2012-01-12 16:46:18

+0

你是對的!我在示例中改變了它。 – Tiddo 2012-01-12 16:48:14