MATLAB中的置换函数

  • 本文关键字:函数 MATLAB matlab
  • 更新时间 :
  • 英文 :


有人能用这种方式编写一个函数来生成从零到x的置换矩阵吗?例如:

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(模型的p d q值

如果你知道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。

相关内容

  • 没有找到相关文章

最新更新