使用for循环转置n*n矩阵

 

public MmatrixTranspose(matrix: Float64Array) {
        const length: number = Math.sqrt(matrix.length);
        if (length % 1 === 0 && matrix.length > 3) {
            const matrixt: Float64Array = new Float64Array(matrix.length);
            for (let m: number = 0; m < length; m++) {
                for (let i: number = 0; i < length; i++) {
                    matrixt[m * length + i] = matrix[i * length + m];
                }
            }
            return matrixt;
        } else {
            console.warn("请确定传入的矩阵长度能正常开方");
            return undefined;
        }
    }