我想根据我的算法为完整的多元多项式编写 Matlab 代码,如下所示:
假设我们有:
A=[1 2 3 4;
5 6 7 8]
这里的输入维度是L=4,行数是M=2。要制作完整的多元多项式,我想使用卷积或 bsxfunc 内置函数。但根据我的自定义算法,它有点不同:
(当多项式的阶数等于2时,这样写维数):
[X1.X1 X1.X2 X1.X3 X1.X4 ; X2.X2 X2.X3 X2.X4 ; X3.X3 X3.X4 ; X4.X4]
所有条款order=2
都像上面一样。对于order=3
,我们有:
X1.*(the first column of above)
X2.*(the second column of above)
X3.*(the third column of above)
X4.*(the forth column of above)
加上 order=2 的先前结果。
当 R=1 时:M1 是完全多元多项式模式的项数。
R=2 : (adding previous terms to following terms)
X1 . M1=[X1.X1;X1.X2;X1.X3;X1.X4] , X2 . M2=[X2.x2; X2.X3; X2.X4] .......
我无法使用内置的bsxfun
. 它需要避免重复的术语,因为当x1
乘以时x2
,我想避免x2
乘以x1
。
最终结果应该是这样的:
Res=[1 5;
2 6;
3 7;
4 8;
1 25;
2 30;
3 35;
4 40;
4 36;
6 42;
... ;
4^4 8^4];
如何为不同的维度和不同的订单编写代码?