Re: [問題] 產生所有[1~H 1~H 1~H .. 1~H]這些vector已回收
※ 引述《GSXSP (Gloria)》之銘言:
: 我想要做summation
: [h_1 h_2 ... h_n]
: h_i = 1,2,...,H
: 所以我要產生
: h = [h_1 h_2 ... h_n] 總共 2^H 個vector
: 不知道有沒有什麼建議的做法呢?
: 我目前能想到的兩個做法
: (1)
: for h(1) = 1:H
: for h(2) = 1:H
: .
: .
: n層for迴圈
: 缺點: 太多for
: (2)
: for i = 1:H^n
: h = i的H進位表示 + 1
: end
: 缺點: 要算i的H進位表示有點麻煩,不知道有沒有function可以用呢?
: (3)
: 不知道有沒有別的的做法
假設你的各個 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 向量
--
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 編輯: DigiPrince 來自: 140.113.94.230 (05/25 01:12)
推
05/25 01:22, , 1F
05/25 01:22, 1F
討論串 (同標題文章)