我能够将矩阵W的元素过滤到满足条件语句的元素=>保持每个内部矩阵中低于中值的元素.中值数组的元素是每个内部数组的中值.
const W = [[45, 60, 15, 35],[45, 55, 75],[12, 34, 80, 65, 90]
];
const median = [ 40, 55, 65 ];
const Wmin = [];
for (let j = 0; j < W.length; j++) {
for (let k = 0; k < W[j].length; k++) {
if (W[j][k] < median[j]) {
Wmin.push(W[j][k]);
}
}
}
console.log(Wmin)
Run Code Online (Sandbox Code Playgroud)
我使用了for循环,但生成的Wmin数组是扁平的.我的目标是能够过滤W并仍然得到不平整的2D阵列.
我得到Wmin = [15,35,45,12,34],但预期的数组应该是Wmin = [[15,35],[45],[12,34]]
我在两个一维数组 (a,b) 上使用了 TensorFlow.js 框架中的 outerProduct 函数,但我发现很难以常规 javascript 格式获取结果张量的值。
即使在使用 .dataSync 和 Array.from() 之后,我仍然无法获得预期的输出格式。两个一维数组之间的结果外积应该给出一个二维数组,但我得到的是一维数组。
const a = tf.tensor1d([1, 2]);
const b = tf.tensor1d([3, 4]);
const tensor = tf.outerProduct(b, a);
const values = tensor.dataSync();
const array1 = Array.from(values);
Run Code Online (Sandbox Code Playgroud)
控制台日志(数组1);
预期结果是 array1 = [ [ 3, 6 ] , [ 4, 8 ] ],但我得到 array1 = [ 3, 6, 4, 8 ]