Re: [問題] 產生所有[1~H 1~H 1~H .. 1~H]這些vector已回收

看板MATLAB作者 (Gloria)時間15年前 (2010/05/31 01:57), 編輯推噓0(007)
留言7則, 2人參與, 最新討論串3/4 (看更多)
: 假設你的各個 h 為一長度 5 的向量且每一個元素的範圍為 1~7, : 則生出那堆 h 向量的程式碼可寫成如下: : H = 1:7; % index range : n = 5; % number of digits : [X{n:-1:1}] = ndgrid(H); : X = reshape(cat(n+1, X{:}), [], n); : 跑完之後看你要拿第幾個 h。 : 矩陣 X 中的第 k 個 row 就是生出來的第 k 個 h 向量。 : 例如:X(3, :) <== 第三個 h 向量 這個方法好像沒辦法處理太大的耶 例如說 H = 1:8; % index range n = 10; % number of digits 這樣好像就matrix過大了 不曉得有沒有辦法改善呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.211.193

05/31 05:35, , 1F
當然啊!矩陣元素有 n*H^n 個,你舉的例子如果用 uint8
05/31 05:35, 1F

05/31 05:35, , 2F
存至少也要 10G。
05/31 05:35, 2F

05/31 05:37, , 3F
如果你要做的是這麼大的矩陣的話,應該只能即時生成 h
05/31 05:37, 3F

05/31 05:39, , 4F
你的 H 都會是 2 的倍數嗎?那樣或許會好做一些。
05/31 05:39, 4F

05/31 11:56, , 5F
我的H只有8~ 要怎麼做呢? 即時生成的方法可以也說一下嗎
05/31 11:56, 5F

05/31 11:57, , 6F
你的方法實在是太神奇了 我看半天都還沒看懂XD
05/31 11:57, 6F

05/31 13:21, , 7F
修正一下:不應該說 2 的倍數,該說 2 的次方。
05/31 13:21, 7F
文章代碼(AID): #1C0gS5uP (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #1C0gS5uP (MATLAB)