Java中的数组修改(改变数组“分辨率”)

2024-04-10

我想创建一个函数来更改整数数组的大小,同时保持其“形状”。

目的是加快 FFT 的计算速度。

它返回一个新的大小数组y每个元素是它在旧数组中“覆盖”的元素的平均值。例如,如果我有一个数组w有 3 个元素,并且想要创建另一个数组z有 2 个元素,第一个元素是:z[0] = (1 * w[0] + 0.5 * w[1]) * 2 / 3,第二个元素是:z[1] = (0.5 * w[1] + 1 * w[2]) * 2 / 3。这有点像改变阵列的“分辨率”。 (当然,对于较小的数字,舍入可能会丢失信息,但对于相当大的数字,我需要它,其中几位数字并不重要。)

感觉这是一个非常简单的问题,但我花了太多时间。我确实有一些代码,虽然我让它几乎可以工作,但我认为我走错了路(太多行了)。基本上,它循环遍历原始数组,计算如何划分每个元素,并使用局部变量跟踪将其放置的位置。

另外,我的搜索都发现了诸如动态更改数组大小之类的内容,这不是我想要的。

所以,这是一个可能的骨架:

public int[] the_function (int[] w, int y) {
    int[] z = new int[y];

    // Some code looping through the array

    return z;
}

那么您想对数组应用过滤器吗?这是一个幼稚的实现...... 我认为关键是要明智地编码过滤器......我将通过将其表示为一系列浮点数来实现,这些浮点数代表我想要应用于输出值的原始值的百分比。对于过滤器来说,这是相当标准的。

public static int[] applyFilter( int[] from , float[] filter ) { 
    if (filter.length > from.lenth){
        throw new IllegalArgumentException("Filter to large to apply to array!");
    } 

    int [] to = new int[from.length + 1 - filter.length];

    for ( int i = 0; i < from.length + 1 - filter.length; i++) { 
        float newValue = 0.0f;

        for( int j = 0; j < filter.length; j++){
           newValue += filter[j] * from[i+j]; 
        }

        to[i] = Math.round(newValue);
    }
    return to;

}

并调用过滤器,就像您在问题中指定的那样......

public static void main (String ... args){
    float[] filter = new float[] { 0.66f, 0.66f }; 
    int[] from = new int[] { 1, 2, 3, 4, 5, 6};

    int[] to = applyFilter(from, filter);
    for (int i : to){
        System.out.println(i);
    }
}

处理 from[1] 缩放 1/2 的情况,可以通过预处理数组然后应用过滤器来处理。就像这样:

 public static void main (String ... args){
    float[] filter = new float[] { 0.66f, 0.66f }; 
    int[] from = new int[] { 1, 2, 3, 4, 5, 6};

            // Preprocess to apply static scalars to the source array.
            int[] frompp = from.clone();
            frompp[1] = Math.round((float) from[i] / 0.5f);

    int[] to = applyFilter(from, filterpp);
    for (int i : to){
        System.out.println(i);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中的数组修改(改变数组“分辨率”) 的相关文章

  • eclipse行号状态行贡献项是如何实现的?

    我需要更新状态行编辑器特定的信息 我已经有了自己的实现 但我想看看 eclipse 贡献项是如何实现的 它显示状态行中的行号 列位置 谁能指点一下 哪里可以找到源代码 提前致谢 亚历克斯 G 我一直在研究它 它非常复杂 我不确定我是否了解完
  • Thymeleaf 3 Spring 5 映射加载字符串而不是 HTML

    我正在尝试将 Spring 5 和 Thymeleaf 3 一起配置 我正在 Eclipse 上工作 我使用 全新安装 构建并使用 springboot run 运行应用程序 我已经设置了一个控制器和几个模板 但 Thymeleaf 似乎找
  • 如何调试“com.android.okhttp”

    在android kitkat中 URLConnection的实现已经被OkHttp取代 如何调试呢 OkHttp 位于此目录中 external okhttp android main java com squareup okhttp 当
  • C# Byte[] 转 BCD 和 BCD 转 INT

    我有一个由 CashRegister Machine 创建的 Hex 文件 我必须读入这个文件 文件使用下面详述的格式 它就像套接字数据包 代码数据 2字节PLU 代码数据 7 字节单价数据 5字节数量数据 5字节数据总量 5字节PLU 名
  • 将巨大的模式编译成Java

    有两个主要工具提供了将 XSD 模式编译为 Java 的方法 xmlbeans 和 JAXB 问题是 XSD 模式确实很大 30MB 的 XML 文件 大部分模式在我的项目中没有使用 所以我可以注释掉大部分代码 但这不是一个好的解决方案 目
  • 断言 Kafka 发送有效

    我正在使用 Spring Boot 编写一个应用程序 因此要写信给 Kafka 我这样做 Autowired private KafkaTemplate
  • Java 中如何将 char 转换为 int? [复制]

    这个问题在这里已经有答案了 我是Java编程新手 我有例如 char x 9 我需要得到撇号中的数字 即数字 9 本身 我尝试执行以下操作 char x 9 int y int x 但没有成功 那么我应该怎么做才能得到撇号中的数字呢 ASC
  • Sun 在 EDT 之外做 GUI 工作的演示?

    我正在看SplashDemo java http download oracle com javase tutorial uiswing examples misc SplashDemoProject src misc SplashDemo
  • 将人类日期(当地时间 GMT)转​​换为日期

    我正在服务器上工作 服务器正在向我发送 GMT 本地日期的日期 例如Fri Jun 22 09 29 29 NPT 2018在字符串格式上 我将其转换为日期 如下所示 SimpleDateFormat simpleDateFormat ne
  • 从jar中获取资源

    我有包含文件的 jar myJar res endingRule txt myJar wordcalculator merger Marge class 在 Marge java 中我有代码 private static final Str
  • Akka 与现有 java 项目集成的示例

    如果我已经有现有的javaWeb 应用程序使用spring and servlet容器 将 Akka 集成到其中的正确方法是什么 就像我将会有Actor1 and Actor2互相沟通的 开始使用这些演员的切入点是什么 例如 1 把它放在那
  • Java继承,扩展类如何影响实际类

    我正在查看 Sun 认证学习指南 其中有一段描述了最终修饰符 它说 如果程序员可以自由地扩展我们所知的 String 类文明 它可能会崩溃 他什么意思 如果可以扩展 String 类 我是否不会有一个名为 MyString 的类继承所有 S
  • 为什么\0在java中不同系统中打印不同的输出

    下面的代码在不同的系统中打印不同的输出 String s hello vsrd replace 0 System out println s 当我在我的系统中尝试时 Linux Ubuntu Netbeans 7 1 它打印 When I
  • 部署 .war 时出现 Glassfish 服务器错误:部署期间发生错误:准备应用程序时出现异常:资源无效

    我正在使用以下内容 NetBeans IDE 7 3 内部版本 201306052037 爪哇 1 7 0 17 Java HotSpot TM 64 位服务器虚拟机 23 7 b01 NetBeans 集成 GlassFish Serve
  • Android S8+ 警告消息“不支持当前的显示尺寸设置,可能会出现意外行为”

    我在 Samsung S8 Android 7 中收到此警告消息 APP NAME 不支持当前的显示尺寸设置 可能会 行为出乎意料 它意味着什么以及如何删除它 谢谢 通过添加解决supports screens 机器人 xlargeScre
  • Java 正则表达式中的逻辑 AND

    是否可以在 Java Regex 中实现逻辑 AND 如果答案是肯定的 那么如何实现呢 正则表达式中的逻辑 AND 由一系列堆叠的先行断言组成 例如 foo bar glarch 将匹配包含所有三个 foo bar 和 glarch 的任何
  • Java/Python 中的快速 IPC/Socket 通信

    我的应用程序中需要两个进程 Java 和 Python 进行通信 我注意到套接字通信占用了 93 的运行时间 为什么通讯这么慢 我应该寻找套接字通信的替代方案还是可以使其更快 更新 我发现了一个简单的修复方法 由于某些未知原因 缓冲输出流似
  • Java 11 - 将 Spring @PostConstruct 替换为 afterPropertiesSet 或使用 initMethod

    我正在使用 spring 应用程序 有时会使用 PostConstruct用于代码和测试中的设置 看来注释将被排除在外Java 11 https www baeldung com spring postconstruct predestro
  • 由 Servlet 容器提供服务的 WebSocket

    上周我研究了 WebSockets 并对如何使用 Java Servlet API 实现服务器端进行了一些思考 我没有花费太多时间 但在使用 Tomcat 进行一些测试时遇到了以下问题 如果不修补容器或至少对 HttpServletResp
  • Java 和/C++ 在多线程方面的差异

    我读过一些提示 多线程实现很大程度上取决于您正在使用的目标操作系统 操作系统最终提供了多线程能力 比如Linux有POSIX标准实现 而windows32有另一种方式 但我想知道编程语言水平的主要不同 C似乎为同步提供了更多选择 例如互斥锁

随机推荐

  • 在 Lambda 中重新处理 DLQ 事件

    我有一个配置了 SQS DeadLetterQueue 的 AWS Lambda 函数 A 当 Lambda 无法处理事件时 该事件会正确发送到 DLQ 有没有办法重新处理以 DLQ 结束的事件 我找到了两种解决方案 但它们都有缺点 创建一
  • SystemEvents.SessionEnding 在进程(之前打开的)关闭之前不会被触发

    我试图在用户关闭会话时在程序中执行一些操作 这是代码 using System using System Diagnostics using Microsoft Win32 using System Windows Forms using
  • GSON + Hibernate:相同的对象导致“实体副本已分配给不同的实体”

    我有以下 JSON id 123 subObjects id 564 name foo contry id 1 name Germany id 777 name bar contry id 1 name Germany
  • 我应该在 Perl 中选择哈希还是哈希引用?

    我还在学习perl 对我来说 引用哈希值比直接访问它们感觉更 自然 因为将引用传递给子项更容易 可以传递一个变量而不是列表 一般来说 我更喜欢这种方法而不是直接访问 hashes 问题是 在哪里 在什么情况下 使用普通的 hashes 更好
  • nodejs exec 命令失败,没有有用的错误消息

    这是要执行的代码 cp exec cc Wall tmp test c o tmp test function e stdout stderr if e var errorstr Compilation failed with the fo
  • ImportError:在 Mac 上找不到入口点('console_scripts'、'pip')

    我收到消息了 You are using pip version 8 0 2 however version 8 1 2 is available You should consider upgrading via the pip inst
  • Eclipse CDT生成的Makefile在哪里?

    我已经使用 Eclipse helios CDT 构建了一个 hello world C 项目 它编译得很好 但我想看一下生成的 Makefile CDT 我在项目文件夹 调试 发布文件夹或 src 文件夹中找不到它 我在哪里可以找到这个
  • 使用 jupyter 将标准输入替换为 python3 中的字符串

    我试图用先前定义的字符串替换标准输入 在浏览堆栈溢出后 我找到了几种解决方案 尽管主要针对 python2 例如 下面的解决方案在 ideone com 中进行了测试并且似乎有效 但是当我尝试将其添加到我的 jupyter 笔记本中的代码中
  • 即使一个 spring bean 初始化失败也继续加载 webapp

    因此 如果 web 应用程序中的 spring 初始化失败 则该 web 应用程序本身不会出现 为了防止这种情况发生 我可能无法从代码中为该特定 bean 初始化重新抛出任何异常 并且 web 应用程序将继续加载 对吗 有没有其他方法可以告
  • Swift 组合:合并多个发布者,并在其中任何一个发布者发出“true”时发出“true”

    我正在尝试构建一个当其他 5 个发布者中的任何一个发出 true 时发出 true 的发布者 我已经成功构建了一个工作版本 但感觉非常恶心 使用CombineLatest4 CombineLatest 尤其是所有 0 0 0 1 0 2 0
  • 命令提示符“Net View 系统错误 6118”[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 当我尝试在命令提示符中使用 net view 时 收到错误代码 6118 这是什么意思 如何修复它 谢谢 尼克 6118 表示该工作组的服务器列表当前
  • 为 mysql_options() 提供了不受支持的选项

    我已经在我的本地计算机上安装了 mysql server 和 mysql workbench 操作系统为 Ubuntu 16 04 我可以通过 CLI 连接到 mysql server 但不能通过 mysql workbench mysql
  • 搜索栏激活时被导航栏隐藏

    我面临着一个奇怪的场景 我在应用程序中使用了搜索栏 并将其与表格视图绑定在一起 如下图所示 但是 当我尝试搜索任何内容时 搜索栏会向上滑动并被导航栏隐藏 我已经多次使用搜索栏 但从未见过像下面这样的屏幕截图 我无法删除导航栏 因为我需要它
  • 如何设置其他应用程序的屏幕方向?

    通过以下几行 我们可以在应用程序中设置方向 setRequestedOrientation ActivityInfo SCREEN ORIENTATION PORTRAIT setRequestedOrientation ActivityI
  • Javascript 无法在 WebView Activity 中工作

    我有一个活动只有一个WebView 其中包含 HTML CSS 和 Javascript 代码 好像有问题access of JavaScript to the 屏幕尺寸的视图 日志猫 说 Tag Web Console Uncaught
  • CSS:不是属性[重复]

    这个问题在这里已经有答案了 我有一些 HTML 表格 这些表没有 CSS 类 两个表有width 100 属性 其他表没有width属性 仅使用 CSS 我需要设置没有的表格的宽度width 100 像这样的事情 table not wid
  • 同态加密算法的实际应用?

    密码学中似乎发生了一些有趣的事情 第一个同态加密 http en wikipedia org wiki Homomorphic encryption最近出现了方案 解释 http www mail archive com cryptogra
  • 从 iOS4 在后台发布位置更新

    我可以从 iOS4 在后台向我的服务器发送位置更新吗 我想要获取用户位置更改并使用 Web 服务调用将其发布到服务器 这里的主要问题是 当应用程序在后台时是否可以调用网络服务或http post 绝对可以 而且您可能想要回顾一下之前的帖子
  • MVC 6 HttpPostedFileBase?

    我正在尝试使用上传图像MVC 6 但是 我找不到该课程HttpPostedFileBase 我已经检查过GitHub并且没有任何运气 有谁知道上传文件的正确方法MVC6 MVC 6 使用另一种机制来上传文件 您可以获取更多示例GitHub
  • Java中的数组修改(改变数组“分辨率”)

    我想创建一个函数来更改整数数组的大小 同时保持其 形状 目的是加快 FFT 的计算速度 它返回一个新的大小数组y每个元素是它在旧数组中 覆盖 的元素的平均值 例如 如果我有一个数组w有 3 个元素 并且想要创建另一个数组z有 2 个元素 第