簡體   English   中英

MATLAB如何在循環時向量化這個

[英]MATLAB how to vectorize this while loop

所以這里的想法是將數據讀入矩陣,然后通過刪除多余的列或行(但是向量化)使該矩陣成為方陣,而不使用任何循環而不使用if / else。 這可能嗎?

這是我用循環和if / else完成它的方式

load file.dat
r = num2str(size('file',1))
c = num2str(size('file',2))
while (r~=c) 
    if (r>c)
        r--
    else (c>r)
        c--
end
res = file(1:r,1:c)
save('squarefile.dat', 'res', '-ascii')

謝謝

給定一個nxm大的矩陣A ,我們將通過從A刪除多余的列或行(取決於哪個維度更大)來創建矩陣B ,這是一個方陣。

B=A(1:min(size(A)),1:min(size(A)));

順便說一句,如果你想要覆蓋A並刪除多余的信息,這一行也可以寫成A=A(1:min(size(A)),...)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM