任何人都可以撰寫一個以這種方式生成從零到軸數的置換矩陣的函式嗎?例如:
myfunc(x,y) 其中 x 是最大數, y 是列數。例如:
myfunc(2,3) 并生成以下結果:
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
2 0 0
2 0 1
2 1 0
2 0 1
1 2 0
...
all the way to 222
它用于測驗 ARIMA(p,d,q) 模型的 pdq 值
uj5u.com熱心網友回復:
如果您知道 x 等于或小于 9,那么您可以使用如下的基本轉換函式:
function z = myfunc(x,y)
z = dec2base(0:((x 1)^y-1),x 1) - '0';
end
如果 x 可能大于 9,則需要更通用的代碼:
function z = myfunc(x,y)
z = arrayfun(@(c)base2dec(c,x 1),dec2base(0:((x 1)^y-1),x 1));
end
在這兩種情況下,請注意,如果 x 和 y 太大,則轉換將不起作用和/或記憶體不足。無論哪種情況,基本策略都是簡單地將基數 (x 1) 從 0 計數到您想要的總數,即 (x 1)^y-1。
uj5u.com熱心網友回復:
你可以試試這段代碼:
function array_rand = myfunc(max_num, col_num, row_num)
array_rand = cell(row_num,col_num)
for i=1:row_num
for j=1:col_num
array_rand(i,j) = num2cell(randperm(max_num, 1)-1)
end
end
end
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/412425.html
標籤:
上一篇:Elasticsearch:過濾嵌套檔案中的陣列元素
下一篇:如何將自定義類串列轉換為二維陣列
