gpt4 book ai didi

javascript - 如何从矩阵中提取子矩阵?

转载 作者:行者123 更新时间:2023-11-30 11:14:12 24 4
gpt4 key购买 nike

考虑一个矩阵 A=[a_i,j] for i,j<=4 。我想提取一个子矩阵,即A3=[a_i,j]但是for i,j=3,4 (底部右侧 Angular 的二次矩阵 2x2)这是我的代码。最后,我得到“该对象不支持属性或方法推送”。你知道出了什么问题吗?

var n = 4;
var A = [];
var arr1 = [2, 1, 3, 4];
var arr2 = [6, 4, 1, 2];
var arr3 = [5, 3, 9, 7];
var arr4 = [1, 3, 2, 1];
A.push(arr1);
A.push(arr2);
A.push(arr3);
A.push(arr4);
document.getElementById("demo1").innerHTML = A;
document.getElementById("demo2").innerHTML = A[2][2];

function a(i, j) {
return A[i - 1][j - 1];
}
document.getElementById("demo3").innerHTML = a(3, 3);

var A3 = [];
for (i = n - 1; i < n + 1; i++) {
for (j = n - 1; j < n + 1; j++) {
A3 = A3.push(a(i, j));
}
}
document.getElementById("demo4").innerHTML = A3;
<p id="demo1"></p>
<p id="demo2"></p>
<p id="demo3"></p>
<p id="demo4"></p>
<p id="demo5"></p>

最佳答案

您可以过滤行并映射切片列。

var array = [[2, 1, 3, 4], [6, 4, 1, 2], [5, 3, 9, 7], [1, 3, 2, 1]],
pos = { i: 2, j: 2 },
size = { i: 2, j: 2 },
result = array
.filter((_, i) => i >= pos.i && i < pos.i + size.i)
.map(a => a.slice(pos.j, pos.j + size.j))

console.log(result);

关于javascript - 如何从矩阵中提取子矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52313225/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com