作为单位矩阵的最大子矩阵

用户8256267

我试图找到作为单位矩阵的最大子矩阵。我不知道如何遍历所有可能的子矩阵。然而,我设法想出了一个函数来确定矩阵是否是身份:

function isIdentityMatrix(matrix) {

  for (var i = 0; i < matrix.length; i++) {
    for (var j = 0; j < matrix.length; j++) {
      if (matrix[i][j] !== 1 && i === j || matrix[i][j] && i !== j) {
        return false;
      }
    }
  }
  return true;
}

任何帮助遍历所有子矩阵的帮助将不胜感激。请记住,我是 javascript 的新手。

维多维斯特罗姆

你可以尝试这样的事情。这个程序

- 找到一个子矩阵 - 如果该矩阵是身份,则返回真

注意:这仅适用于 nxn 矩阵,但可以轻松调整以使用 nxm 矩阵。

   let arr=[

[1,1,1,0,0],
[0,1,1,0,0],
[0,0,1,0,0],
[1,0,1,1,0],
[0,0,0,1,1]

];

let finalValue=0;
 let n=arr.length;

 let N=2;//size of submatrices

 function subMatrix(k,n,N,arr)
{


    let max_k_x=n-N+1;// per row max value of k
    let row=Math.floor(k/max_k_x);
    let col=k%max_k_x;


    /* 
      k=6,n=4,N=2
      max_k=(4-2+1)*(4-2+1)=9
      max_k_x=3
      row=2(starting from zero)
      col=0
    */

let matrix=new Array();

for(let i=row;i<row+N;i++){
  for(let j=col;j<col+N;j++){

    matrix.push(arr[i][j]);

  }
}

return matrix;
}

 function doSomethingWithMatrix(matrix,N){

for(let i=0;i<matrix.length;i++){

        if((matrix[i] && (i%(N+1)!==0))||(matrix[i]!==1 && (i%(N+1))===0)){

     return false;


    }

    }





 return true;
}

 for(let k=0;k<(n-N+1)*(n-N+1);k++){//k can vary from 0 to (((n-N+1)^2)-1)

     let matrix=new Array();
  matrix=subMatrix(k,n,N,arr);
 // console.log(doSomethingWithMatrix(matrix,N));
   //  console.log("   ");
if(doSomethingWithMatrix(matrix,N)){

        finalValue=N;
         N++;
         k=0;
         if(N===n){
             N--;
             break;
         }

     }
     if(k===(n-N+1)*(n-N+1)-1){
         N++;
     }
     matrix=[];

}
console.log("final N: "+finalValue);

您可以更改循环内的值 N 以检查 NxN 子矩阵。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

向量到单位矩阵

来自分类Dev

循环的python单位矩阵

来自分类Dev

将单位矩阵提升为幂

来自分类Dev

将单位矩阵插入更大尺寸的空矩阵

来自分类Dev

如何根据单位矩阵对矩阵的元素求平均?

来自分类Dev

为什么我的相机矩阵是校准后的单位矩阵

来自分类Dev

获取最大子矩阵的坐标

来自分类Dev

存储最大子矩阵的坐标

来自分类Dev

更紧凑的单位矩阵Lambda表达式

来自分类Dev

使用向量C ++的向量建立单位矩阵

来自分类Dev

如何在 Scala 中生成可变单位矩阵?

来自分类Dev

在numpy中创建特殊结构的nxn矩阵:单位矩阵和同一矩阵的右移1列的总和

来自分类Dev

如何交换单位矩阵的第一行和最后一行?

来自分类Dev

有没有一种简单的方法可以交换矩阵中的行以在左侧形成单位矩阵

来自分类Dev

如何在Matlab中生成分布为N(0,sigma ^ 2 *单位矩阵(dxd))的随机向量

来自分类Dev

如何在 python pandas 中展平数据框(可能类似于将单位矩阵转换为 1 的向量)

来自分类Dev

大2D位矩阵中大小为HxW的最大子数组

来自分类Dev

2D矩阵中大小为HxW的最大子数组

来自分类Dev

选择单行矩阵作为矩阵

来自分类Dev

绘制矩阵作为散点图并连接每列中的最大点

来自分类Dev

Python单位移位矩阵

来自分类Dev

如何找到三个矩阵的每个最大元素作为新矩阵?

来自分类Dev

最大矩阵成本路径,

来自分类Dev

使用矩阵作为精灵

来自分类Dev

从逻辑矩阵获取最大置换矩阵

来自分类Dev

较大矩阵中的最大相等子矩阵

来自分类Dev

从给定矩阵中找到最大矩阵和最小矩阵

来自分类Dev

找到矩阵中最大的元素

来自分类Dev

在矩阵中找到最大的元素

Related 相关文章

热门标签

归档