gpt4 book ai didi

java - 在 Java 中调整矩阵的大小

转载 作者:搜寻专家 更新时间:2023-11-01 03:35:43 26 4
gpt4 key购买 nike

我有一个矩阵 double[][] 具有任意维度但大于 300(可能是一个或可能是两个维度)。我想将它缩放到 double[300][300]

我的主要方法是对矩阵进行插值并将其提高到 double[600][600] 然后取四个元素并求出它们的平均值,即元素 0,00,11,01,1 将是 0,0最终的 300x300 矩阵。

我找到了 JAVA 中的插值库,但我不知道如何使用它。谁能提供一些示例或信息?

图书馆是:http://docs.oracle.com/cd/E17802_01/products/products/java-media/jai/forDevelopers/jai-apidocs/javax/media/jai/Interpolation.html

谢谢。

最佳答案

编写一个将源单元格映射到目标单元格然后取平均值的简单方法怎么样?

public static boolean matrixReduce(double[][] dst, double[][] src) {
double dstMaxX = dst.length - 1, dstMaxY = dst[0].length - 1;
double srcMaxX = src.length - 1, srcMaxY = src[0].length - 1;
int count[][] = new int[dst.length][dst[0].length];

for (int x = 0; x < src.length; x++) {
for (int y = 0; y < src[0].length; y++) {
int xx = (int) Math.round((double) x * dstMaxX / srcMaxX);
int yy = (int) Math.round((double) y * dstMaxY / srcMaxY);

dst[xx][yy] += src[x][y];
count[xx][yy]++;
}
}

for (int x = 0; x < dst.length; x++) {
for (int y = 0; y < dst[0].length; y++) {
dst[x][y] /= count[x][y];
}
}

return true;
}

关于java - 在 Java 中调整矩阵的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32421991/

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