我想在MATLAB中創建一個36 * 45維的martrix,但是這些列將填充一個循環。在開始時,我只是將36 * 1的矩陣作爲初始值填充到第一列,然後逐漸運行循環,其餘列將被填充。重要的是要知道,從一開始就應該知道大矩陣(36 * 45)的大小。如何在MATLAB中創建一個大矩陣並逐漸將其填充到循環中?
回答
您需要了解一些關於MATLAB基礎知識。我建議你這樣做。該代碼是這樣:
A=zeros(36,45);
for ii=1:size(A,2);
A(:,ii) = %here comes a 36x1 matrix
end
點擊瞭解矩陣索引:https://uk.mathworks.com/company/newsletters/articles/matrix-indexing-in-matlab.html?refresh=true
有時候我填的是矩陣的倒退。這可以防止需要一個單獨的分配線,有時它會更簡單。 (例如,在結構數組與不確定的領域填充時)
,看起來像這樣:
for ix = numColumns:-1:1
results(:,ix) = <function generating results>; %No pre-allocation required
end
下面
對於一些比較奇怪的原因無關,但有趣的負面評論,我認爲這實際上比調用非常大的矩陣的zeros()
要快。您可以通過比較以下看到:
tic; for ix=1:1000; x = zeros(1000); end; toc
%1.18 second on my current computer
tic; for ix=1:1000; clear('y'); y(1000,1000)=0; end; toc
%0.032 seconds on my current computer
我已經看到了這個地方#2事業的一個很好的說明,但現在不能找到它。
沒有它沒有。預分配*總是*更快。 –
向後迭代通過循環首次完成全部分配。這獲得了預先分配的所有優點。奇怪的加速是二階效應,這是因爲對於較大的n值,「x = zeros(n)」明顯慢於「x(n,n)= 0」。 – Pursuit
humm它可能是。但是,這也是我的版本特定。 –
- 1. 如何創建for循環並在r中填充輸出矩陣
- 2. 如何從一個for循環中填充矩陣R
- 3. 通過循環在matlab中創建多個矩陣
- 4. MATLAB:從循環值創建矩陣?
- 5. 在omp循環中填充已知大小的矩陣。未知
- 6. 創建矩陣並填充它wolfram
- 7. 如何在循環中逐漸填充數組而不將其聲明爲Python中的「1」或「0」/空?
- 8. 用循環創建一個矩陣Python
- 9. 將循環矩陣複製到一個3-d矩陣中
- 10. 如何有效地在matlab中創建這個矩陣?沒有for循環?
- 11. 如何用R中另一個矩陣的值填充矩陣?
- 12. Matlab填充矩陣數組
- 13. 如何從for循環結果填充R中的空矩陣?
- 14. 在一個循環中創建多個矩陣
- 15. SAS PROC IML:DO循環來填充矩陣
- 16. 使用雙循環填充矩陣R
- 17. 使用for循環填充矩陣
- 18. 使用for循環填充矩陣R
- 19. 「for」循環未填充矩陣
- 20. 如何在matlab中將矩陣塊連接到單個矩陣?
- 21. 循環陣列矩陣matlab
- 22. 如何創建一個存儲值並將其填充到ruby中的數組?
- 23. 在MATLAB中不使用循環或嵌套循環操作創建矩陣
- 24. 如何在MATLAB中創建一個相似矩陣?
- 25. 循環創建矩陣
- 26. 從一個矩陣創建許多矩陣與循環?
- 27. 分配一個已填充的矩陣到一個未填充的矩陣
- 28. 在R中創建一個帶有循環的矩陣
- 29. 循環在python中創建一個矩陣
- 30. 如何在矩陣中間創建一個填充菱形的菱形?
只需將A(:,1)更改爲A(:,ii)即可。我會自己做編輯,但抱怨編輯過短:) – Chris
@Chris謝謝,這是匆忙 –