Re: [問題] 空矩陣?

看板MATLAB作者 (如果狗狗飛上天)時間11年前 (2014/10/26 02:03), 11年前編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《dNchOmiu (浩)》之銘言: : 之前看別人的code看到 : a=[] : 想了很久不知道是什麼 : Google也找不太到(不知道要用什麼關鍵字搜這樣) : 感覺上有點像是零向量 : 請問各位有人知道這是什麼用法嗎 : 謝謝 空矩陣就是宣告一個矩陣,內容是空的. 這是一個很常用的技巧. 他對於stack類的問題很方便.也就是你要把資料層層堆疊,但是 不知道要做多少筆資料,也不清楚每一筆資料的大小時非常有效. 例如: a=[] for n=1:100 if mod(n,3)==0 a=cat(2,a,ones(1,n)) end end 這個程式我要求,只要可以被三整除的數字,就創造一個大小是 n的列向量.所以我每一次要塞進去的資料的大小完全是動態的, 對於這個程式,當然總共有多少筆,我是可以算啦.但是如果是複 雜一點的資料,要算就不這麼容易了. 當然上面的程式可以有很多寫法啦,但我想示範的是,你想把 一些資料做堆疊,但是你根本搞不清楚接下來要堆疊的資料,到 底有多少筆,也不清楚有多大. 所以你沒辦法先宣告一個確定 大小的矩陣.所以只能先宣告一個空矩陣,讓電腦先配置這樣一 個空的籃子,接著你就可以一筆一筆地把資料放進去. 例如本例中,在迴圈中進行資料的串接.如果你沒有先宣告a=[], 這個做法自然就走不下去了. 當然宣告空矩陣的用途很多.但是最常用的應該還是要堆疊資料 的時候.例似的語法其實在其他語言中也普遍存在,編譯式語言, 如fortran是透過allocate達成,Python中用法就跟Matlab類似. 目的都是一樣,讓你對記憶體的動態使用更具彈性. -- ★人生中最溫暖的夏天是在紐約的冬天 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 168.150.122.1 ※ 文章網址: http://www.ptt.cc/bbs/MATLAB/M.1414260201.A.23E.html ※ 編輯: pipidog (168.150.122.1), 10/26/2014 02:10:59

11/01 15:34, , 1F
感謝你的解答
11/01 15:34, 1F
文章代碼(AID): #1KI-Nf8- (MATLAB)
討論串 (同標題文章)
本文引述了以下文章的的內容:
0
3
完整討論串 (本文為第 2 之 2 篇):
0
3
文章代碼(AID): #1KI-Nf8- (MATLAB)