【问题标题】:How to handle arrays and borders in Java如何在 Java 中处理数组和边框
【发布时间】:2014-06-07 06:56:03
【问题描述】:

如果我有一个整数数组,例如下面的 heightwidth

 1 2 3 4 5 5 6 7 8 9 10
 1 2 3 4 5 5 6 7 8 9 10
 1 2 3 4 5 5 6 7 8 9 10
 1 2 3 4 5 5 6 7 8 9 10
 1 2 3 4 5 5 6 7 8 9 10
 1 2 3 4 5 5 6 7 8 9 10
 1 2 3 4 5 5 6 7 8 9 10
 1 2 3 4 5 5 6 7 8 9 10

如果我有一个内核 1x5 kernel [2 2 3 4 5] 并且我想将内核与整数的值相乘。除了第一列和最后一列外,我如何确保内核应用于整个数组。

任何帮助将不胜感激。

【问题讨论】:

  • 我不确定你的意思。您可以自己使用边界检查。你能展示一下你的尝试吗?
  • 你有没有尝试过?
  • 嗨,是的,我遇到了类似的解决方案 for(int filterX = -filterWidth/2; filterX < filterWidth/2; filterX++) for(int filterY = -filterHeight/2; filterY < filterHeight/2; filterY++),但它考虑了所有方面,而不是第一列和最后一列
  • 您希望我们在评论中阅读该内联内容吗?您将某物称为“内核”,然后想要使用小数部分?您的问题等同于向量乘以矩阵(尽管已调整),并且您的尺寸不匹配。无论是程序员还是数学家,我认为问题都是一样的:“到底是什么?”

标签: java arrays int


【解决方案1】:

x-index=1 开始,所以第一个元素在"2" 并在x-index=7 结束,所以内核的最后一个元素将在"9"。那么"1""10" 列将不会被触及。

【讨论】:

  • 如果内核是 1x5 怎么办?
  • 你能添加代码并评论它吗,因为它很混乱
  • 当然,您应该使代码更加“同步”,以便它可以处理其他内核大小和维度。如果它是 1x5,那么它应该比以前更快地结束 2 个元素。
  • 有点像你的问题?如果它是m x n 向量怎么办?然后应用具有高度和宽度的过滤器,您需要使用这些尺寸的 1/2?
  • Jeremy,向量是 m xn,我想将该向量乘以整数数组,但不希望数组的第一列和最后一列被更改,如我的问题所示
猜你喜欢
  • 2014-11-08
  • 1970-01-01
  • 2022-01-19
  • 1970-01-01
  • 2018-10-28
  • 2012-01-05
  • 1970-01-01
  • 2021-10-15
  • 2017-09-20
相关资源
最近更新 更多