javascript中的Kronecker张量积

javascript中的Kronecker张量积,javascript,matlab,Javascript,Matlab,我需要计算两个矩阵的Kronecker积(如MatLab中的kron()函数)。我似乎已经找不到任何代码了,也许有人的电脑上有一个可以使用的代码?我已经搜索了GitHub,但它们似乎都没有正常工作 例如: A=[1,2]; B=[3,4]; C=kroneckerProduct(A,B) 然后C将给出[3,4,6,8]我不知道主题,我必须把它读出来。所以我不完全确定代码是否正确(对于每个输入),尽管我在网上找到了一些例子 function mapAB(a,b,fn){ var k=0,

我需要计算两个矩阵的Kronecker积(如MatLab中的kron()函数)。我似乎已经找不到任何代码了,也许有人的电脑上有一个可以使用的代码?我已经搜索了GitHub,但它们似乎都没有正常工作

例如:
A=[1,2];
B=[3,4];
C=kroneckerProduct(A,B)


然后C将给出[3,4,6,8]

我不知道主题,我必须把它读出来。所以我不完全确定代码是否正确(对于每个输入),尽管我在网上找到了一些例子

function mapAB(a,b,fn){
    var k=0, out = Array(a.length*b.length);
    for(var i=0; i<a.length; ++i)
        for(var j=0; j<b.length; ++j)
            out[k++] = fn(a[i], b[j]);
    return out;
}

function kroneckerProduct(a,b){
    return Array.isArray(a)?
        Array.isArray(b)? 
            mapAB(a,b, kroneckerProduct):
            a.map(v => kroneckerProduct(v, b)):
        Array.isArray(b)? 
            b.map(v => kroneckerProduct(a, v)):
            a*b;
}
函数映射ab(a,b,fn){
var k=0,out=Array(a.length*b.length);
对于(var i=0;i kroneckerProduct(a,v)):
a*b;
}
函数映射ab(a,b,fn){
var k=0,
out=数组(a.长度*b.长度);
对于(变量i=0;ikroneckerProduct(v,b)):
数组。isArray(b)?
b、 映射(v=>kroneckerProduct(a,v)):
a*b;
}
函数compute(){
var a=document.getElementById(“a”).value;
var b=document.getElementById(“b”).value;
var文本;
试一试{
text=JSON.stringify(kroneckerProduct(
JSON.parse(a.trim()),
parse(b.trim())
),空,2);
}捕捉(错误){
文本=错误;
}
document.getElementById(“out”).innerHTML=text;
}



谢谢您的帮助!