插值算法-代码实现
1、
import java.util.HashMap;
import java.util.Map;public class Interpolation {public static void main(String[] args) {// 定义给定的 XML 字段值Map<String, double[]> xmlValues = new HashMap<>();xmlValues.put("faceSize", new double[]{1000, 1500});xmlValues.put("section1", new double[]{0.2, 0.3, 0.4});xmlValues.put("section2", new double[]{0.25, 0.35, 0.5});// 调用插值函数double interpolatedSection = interpolate(xmlValues, 1250);// 打印插值结果System.out.println("Interpolated section: " + interpolatedSection);}public static double interpolate(Map<String, double[]> xmlValues, double targetFaceSize) {// 获取 faceSize 数组double[] faceSizes = xmlValues.get("faceSize");// 获取 section1、section2 数组double[] section1 = xmlValues.get("section1");double[] section2 = xmlValues.get("section2");// 找到目标 faceSize 对应的索引int index1 = 0;int index2 = 1;// 执行线性插值double section1Interpolated = interpolateLinear(faceSizes[index1], section1[index1], faceSizes[index2], section1[index2], targetFaceSize);double section2Interpolated = interpolateLinear(faceSizes[index1], section2[index1], faceSizes[index2], section2[index2], targetFaceSize);// 计算 section 的平均值return (section1Interpolated + section2Interpolated) / 2;}// 线性插值函数public static double interpolateLinear(double x1, double y1, double x2, double y2, double x) {return y1 + (y2 - y1) * (x - x1) / (x2 - x1);}
}import java.util.HashMap;
import java.util.Map;public class Interpolation {public static void main(String[] args) {// 定义给定的 XML 字段值Map<String, double[]> xmlValues = new HashMap<>();xmlValues.put("faceSize", new double[]{1000, 1500});xmlValues.put("section1", new double[]{0.2, 0.3, 0.4});xmlValues.put("section2", new double[]{0.25, 0.35, 0.5});xmlValues.put("weight", new double[]{0, 0.5, 1});// 调用插值函数double[] interpolatedValues = interpolate(xmlValues, 1250);// 打印插值结果System.out.println("Interpolated section: " + interpolatedValues[0]);System.out.println("Interpolated weight: " + interpolatedValues[1]);}public static double[] interpolate(Map<String, double[]> xmlValues, double targetFaceSize) {// 获取 faceSize 数组double[] faceSizes = xmlValues.get("faceSize");// 获取 section1、section2 和 weight 数组double[] section1 = xmlValues.get("section1");double[] section2 = xmlValues.get("section2");double[] weight = xmlValues.get("weight");// 找到目标 faceSize 对应的两个索引int index1 = -1;int index2 = -1;for (int i = 0; i < faceSizes.length - 1; i++) {if (targetFaceSize >= faceSizes[i] && targetFaceSize <= faceSizes[i + 1]) {index1 = i;index2 = i + 1;break;}}// 执行线性插值double section1Interpolated = interpolateLinear(faceSizes[index1], section1[index1], faceSizes[index2], section1[index2], targetFaceSize);double section2Interpolated = interpolateLinear(faceSizes[index1], section2[index1], faceSizes[index2], section2[index2], targetFaceSize);double weightInterpolated = interpolateLinear(faceSizes[index1], weight[index1], faceSizes[index2], weight[index2], targetFaceSize);return new double[]{(section1Interpolated + section2Interpolated) / 2, weightInterpolated};}// 线性插值函数public static double interpolateLinear(double x1, double y1, double x2, double y2, double x) {return y1 + (y2 - y1) * (x - x1) / (x2 - x1);}
}
2、
#include <iostream>
#include <map>// 线性插值函数
double interpolateLinear(double x1, double y1, double x2, double y2, double x) {return y1 + (y2 - y1) * (x - x1) / (x2 - x1);
}// 插值函数
double interpolate(std::map<std::string, double*> xmlValues, double targetFaceSize) {// 获取 faceSize 数组double* faceSizes = xmlValues["faceSize"];// 获取 section1、section2 数组double* section1 = xmlValues["section1"];double* section2 = xmlValues["section2"];// 找到目标 faceSize 对应的索引int index1 = 0;int index2 = 1;// 执行线性插值double section1Interpolated = interpolateLinear(faceSizes[index1], section1[index1], faceSizes[index2], section1[index2], targetFaceSize);double section2Interpolated = interpolateLinear(faceSizes[index1], section2[index1], faceSizes[index2], section2[index2], targetFaceSize);// 计算 section 的平均值return (section1Interpolated + section2Interpolated) / 2;
}int main() {// 定义给定的 XML 字段值std::map<std::string, double*> xmlValues;double faceSizes[] = {1000, 1500};double section1[] = {0.2, 0.3, 0.4};double section2[] = {0.25, 0.35, 0.5};xmlValues["faceSize"] = faceSizes;xmlValues["section1"] = section1;xmlValues["section2"] = section2;// 调用插值函数double interpolatedSection = interpolate(xmlValues, 1250);// 打印插值结果std::cout << "Interpolated section: " << interpolatedSection << std::endl;return 0;
}
相关文章:
插值算法-代码实现
1、 import java.util.HashMap; import java.util.Map;public class Interpolation {public static void main(String[] args) {// 定义给定的 XML 字段值Map<String, double[]> xmlValues new HashMap<>();xmlValues.put("faceSize", new double[]{10…...
113.PyQt5_QtPrintSupport_打印操作
我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉&…...
在vue中使用bing map 的小demo
1.注意事项(关于经纬度) 如果不转换成WGS84 标准的经纬度 bing map会报错 如果要在 Bing Maps 中使用中国地区的经纬度,需要先将其转换为 WGS84 标准的经纬度。你可以使用第三方的坐标转换服务,或者使用相关的 JavaScript 库进行…...
基于uni-app的埋点sdk设计
一、统计app激活状态 在App.vue 中 利用onShow生命周期验证 或者操作 onShow: function () { uni.showToast({ title: onShow }) }, 二、页面级别的统计 (进入页面、停留时长、手机系统信息、网络状态、页面路径、标题) 需要收集的数据 { &quo…...
Python学习笔记(三)
一、使用朴素贝叶斯制作鸢尾花数据模型 from sklearn.preprocessing import StandardScaler from sklearn.naive_bayes import MultinomialNB from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.feature_extraction…...
Python办公自动化之Excel做表自动化:全网最全,看这一篇就够了!
0 Python Excel库对比 我们先来看一下python中能操作Excel的库对比(一共九个库): 1 Python xlrd 读取 操作Excel 1.1 xlrd模块介绍 (1)什么是xlrd模块? python操作excel主要用到xlrd和xlwt这两个库&…...
【学习笔记】R语言入门与数据分析1
数据分析 数据分析的过程: 数据采集 数据存储 数据分析 数据挖掘 数据可视化 进行决策 数据挖掘 数据量大 复杂度高,容忍一定的误差限 追求相关性而非因果性 数据可视化 直观明了 R语言介绍 R是免费的(开源软件、扩展性好)…...
MyBatis-Spring整合
引入Spring之前需要了解mybatis-spring包中的一些重要类; http://www.mybatis.org/spring/zh/index.html 什么是 MyBatis-Spring? MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。 知识基础 在开始使用 MyBatis-Spring 之前&#x…...
资深亚马逊运营实战技巧:跨境电商6大选品法
1、工具选品法 比如店雷达, 通过大数据分析工具选出来利基产品或者通过工具选出来利基的市场,然后再通过分析市场来得到产品。 以女装为例,通过大数据分析,全方位对市场需求、款式、质量等进行多维度判断,其中SKU销量…...
bugku-web-需要管理员
页面源码 <html> <head> <meta http-equiv"Content-Type" content"text/html; charsetUTF-8"> <title>404 Not Found</title> </head> <body> <div idmain><i> <h2>Something error:</h2…...
STM32之FreeRTOS移植
1.FreeRTOS的移植过程是将系统需要的文件和代码进行移植和裁剪,其移植的主要过程为: (1)官网上下载FreeRTOS源码:https://www.freertos.org/ (2)移植文件夹,在portable文件夹中只需…...
SpringBoot实用开发(十四)-- 消息(Message)的简单认识
目录 1.消息的概念 2.Java处理消息的标准规范 3.JMS 4.AMQP 5.MQTT 1.消息的概念 广义角度来说,消息其实就是信息,但是和信息又有所不同。信息通常被定义为一组数据,而消息除了具有数据的特征之外,还有...
【Spring Boot 源码学习】SpringApplication 的 run 方法核心流程介绍
《Spring Boot 源码学习系列》 SpringApplication 的 run 方法核心流程介绍 一、引言二、往期内容三、主要内容3.1 run 方法源码初识3.2 引导上下文 BootstrapContext3.3 系统属性【java.awt.headless】3.4 早期启动阶段3.5 准备和配置应用环境3.6 打印 Banner 信息3.7 新建应用…...
如何保证消息不丢失?——使用rabbitmq的死信队列!
如何保证消息不丢失?——使用rabbitmq的死信队列! 1、什么是死信 在 RabbitMQ 中充当主角的就是消息,在不同场景下,消息会有不同地表现。 死信就是消息在特定场景下的一种表现形式,这些场景包括: 消息被拒绝访问&am…...
html、css、京东移动端静态页面,资源免费分享,可作为参考,提供InsCode在线运行演示
CSDN将我上传的免费资源私自变成VIP专享资源,且作为作者的我不可修改为免费资源,不可删除,寻找客服无果,很愤怒,(我发布免费资源就是希望大家能免费一起用、一起学习),接下来继续寻找…...
头歌-机器学习 第13次实验 特征工程——共享单车之租赁需求预估
第1关:数据探索与可视化 任务描述 本关任务:编写python代码,完成一天中不同时间段的平均租赁数量的可视化功能。 相关知识 为了完成本关任务,你需要掌握: 读取数据数据探索与可视化 读取数据 数据保存在./step1/…...
Unity 2D让相机跟随角色移动
相机跟随移动 最简单的方式通过插件Cinemachine 在窗口/包管理器选择全部找到Cinemachine,导入。然后在游戏对象/Cinemachine创建2D Camera。此时层级中创建一个2D相机。选中人物拖入检查器Follow。此时相机跟随人物移动。 修改相机视口距离 在检查器中Lens下调正…...
【面试题】s += 1 和 s = s + 1的区别
文章目录 1.问题2.发现过程3.解析 1.问题 以下两个程序真的完全等同吗? short s 0; s 1; short s 0; s s 1; 2.发现过程 初看s 1 和 s s 1好像是等价的,没有什么区别。很长一段时间内我也是这么觉得,因为当时学习c语言的时候教科书…...
ARM的学习
点亮流水灯 .text .global _start _start: 使能GPIOE的外设时钟 RCC_MP_AHB4ENSETR 0x50000a28 [4]->1LDR R0,0X50000A28 指定基地址LDR R1,[R0] 将寄存器数据读取出来保存到R1中ORR R1,R1,#(0x3<<4) [4]设置为1ORR R1,R1,#(0x3<<5) [5]设置为1STR …...
Restful API接口规范(以Django为例)
Restful API接口规范(以Django为例) Restful API的接口架构风格中制定了一些规范,极大的简化了前后端对接的时间,以及增加了开发效率 安全性保证–使用https路径中带 api标识路径中带版本号数据即资源,通常使用名词操作请求方式决定操作资源…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...
Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...
【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...
多模态图像修复系统:基于深度学习的图片修复实现
多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...
MySQL 主从同步异常处理
阅读原文:https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主,遇到的这个错误: Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一,通常表示ÿ…...
Axure 下拉框联动
实现选省、选完省之后选对应省份下的市区...
