Re: [討論] 預先宣告已回收
※ 引述《mydas (不是一朝一夕)》之銘言:
: 想請問一個warning的問題
: 一般來說當在寫程式的時候
: 通常我會有預先宣告這個變數的習慣
: 講宣告可能不太正確 意思是指說
: 我會預先指定一個固定大小矩陣給這個變數
: 但是matlab會在這一行出現紅線, 說指定的值沒有被使用
: ex:
: A= zeros (X,Y);
: A=imflipr(B) ; % B是內建一個已知函數 or others..
我猜MATLAB是這樣的
在imflipr內已經先產生一個暫時的變數A0
然後再令A = A0
如果你的A事先定義好
MATLAB反而還要比較 A 和 A0的大小來決定需不需要改變矩陣大小
如果A沒有定義 反而不需要這個檢查步驟
: 通常會在A=zeros(X,Y)出現警告行 說指定的值並沒有被使用
: 不過就我所知, 變數預先被宣告大小 不是應該會比較快嗎?
: 所以不是很懂這一行的WARNING意義是.. ?
: 我知道這個warning 不會影響結果 只是誠心請教好的coding style..
: 謝謝
通常速度比較快的是這種情形
% X = zeros(1, 10);
for ii = 1 : 10
X(ii) = ii;
end
這時候X如果長度有定義
存取X(ii) 就反而不需要動態增加矩陣長度
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.19.216
討論串 (同標題文章)