如果我知道K = kron(A,B),其中kron是MATLAB中定义的矩阵的Kronecker乘积,我如何从给定矩阵K中找到A和B?
例如,假设
K = [1 0 0 0 ;0 1 0 0 ; 0 1 0 0 ;0 1 0 0 ;1 0 0 0 ;0 1 0 0 ;0 1 0 0 ;0 1 0 0 ;1 0 0 0 ;0 1 0 0 ;0 1 0 0 ;0 1 0 0 ;0 0 1 0 ;0 0 0 1 ;0 0 0 1 ;0 0 0 1 ]
Run Code Online (Sandbox Code Playgroud)
有没有办法找到A和B,这样K = kron(A,B)?在这种情况下,A和B如下:
A = [ 1 0 …Run Code Online (Sandbox Code Playgroud) 我有A大小m的变量n.我要生成B大小m的m*n,比如下面的例子.例:
A = [1 2 3;
4 5 6;
7 8 9]
Run Code Online (Sandbox Code Playgroud)
应该结果
B = [1 2 3 4 5 6 7 8 9;
1 2 3 4 5 6 7 8 9;
1 2 3 4 5 6 7 8 9]
Run Code Online (Sandbox Code Playgroud)
没有使用循环有没有办法做到这一点?m并且n是可变的.
我想找到一个比使用更快的代码P = nchoosek(1:100,i),它位于一个循环中,并i在我的代码中重复一次.