计算KL散度与JS散度的MATLAB程序-简单好用

2023-10-29

阅读目录(Content)

MATLAB程序:计算KL散度与JS散度

问题:给定两个向量,计算这两个向量之间的Kullback-Leibler Divergence与Jensen-Shannon Divergence。KL散度与JS散度的计算公式参考:相似性度量  

1. MATLAB程序

function [score_KL, score_JS] = KL_JS_div(vec1, vec2)
% Input: vec1: vector 1, vec2: vector 2
% Output: score_KL: KL divergence, source_JS: JS divergence
% Author: kailugaji
% https://www.cnblogs.com/kailugaji/
 
% Make sure vec1 and vec2 sum to 1
if any(vec1(:))
    vec1 = vec1/sum(vec1(:));
end
  
if any(vec2(:))
    vec2 = vec2/sum(vec2(:));
end
 
% Compute Kullback-Leibler Divergence
score_KL = sum(sum(vec1.* log(eps + vec1./(vec2+eps))));
 
% Compute Jensen-Shannon Divergence
score_JS = (sum(sum(vec1.* log(eps + vec1./((vec1+vec2)./2+eps))))+sum(sum(vec2.* log(eps + vec2./((vec1+vec2)./2+eps)))))./2;
 
if vec1==vec2
    score_KL=0;
    score_JS=0;
end

2. 结果

>> vec1=[0.2 0.4 0.4];
>> vec2=[0.3 0.2 0.5];
>> [score_KL, score_JS] = KL_JS_div(vec1, vec2)
 
score_KL =
 
   0.106908430076661
 
 
score_JS =
 
   0.024807303850391

转载:博客园 凯鲁嘎吉 - 博客园

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算KL散度与JS散度的MATLAB程序-简单好用 的相关文章

  • Vue.JS 2.5.1:未捕获的语法错误:意外的令牌导出

    我试图使用 VueJS 和 Bootstrap Vue 制作一个单选按钮 但是当我制作它时发生了这种情况 我预计这是语法错误 就像它所说的那样 但我似乎找不到任何线索 所以我尝试复制粘贴代码 这是 test radio php 的完整代码
  • 使用 获取用于 javascript 的 RSA 密钥?

    我的 Web 项目需要一个 RSA 密钥对 虽然有一些库 但我认为依靠浏览器 为了安全性和速度 为我生成密钥是个好主意 是否可以使用注册机或其他浏览器 API 来执行此操作 我不知道如何从注册机获取密钥 它们似乎是在提交时生成的 但我不想将
  • 拖放区缩略图宽度图像大小

    如何更改上传图像的缩略图大小 我在我的javascript中尝试过thumbnailWidth 350 但是这不会增加缩略图大小 而缩略图只是看起来放大了 如何操作图像缩略图大小 HTML section section
  • 如果浏览器在 asp .net 中关闭,请从浏览器中注销?

    我的要求有点复杂 用户正在使用 Web 浏览器访问数据库 而在访问数据库时 如果用户关闭活动页面而不是注销会话 该会话需要自动注销 有人可以指导我如何做这个吗 我在母版页中使用了jquery onbeforeunload 我收到消息离开页面
  • ngx-DataTable 对列进行排序无法正常工作 Angular 4

    虽然我对角度非常陌生 但我在使用 ngx DataTable 时遇到了一些困难 我使用简单的 ngx DataTable 进行简单的操作 问题出在列上 尽管我已将 attr 声明为 sortable true 但排序不起作用 这是代码 表定
  • 通过 jquery/javascript 在警报或确认对话框中单击“确定”?

    我正在考虑在backbone js 和jquery 中编写一些UI 测试 它们可能不是最好的方法 但这是我正在考虑的事情 通过纯代码自动化测试而无需记录和回放 使用这种方法唯一让我摸不着头脑的是 在某些 用例流程 执行的 中 会出现确认 警
  • javascript 和 PHP 中的正则表达式有什么区别吗?

    这是在 javascript 中验证电子邮件地址的正则表达式 我不确定是否可以直接在 PHP 中使用它 a z d u00A0 uD7FF uF900 uFDCF uFDF0 uFFEF a z d u00A0 uD7FF uF900 uF
  • 将数组转换为具有默认值的对象的更简洁方法? (洛达什可用)

    我有一个数组 比如说 a b c 我想将其转换为一个对象 该对象以数组值作为键和我可以设置的默认值 所以如果默认值是true 我希望我的输出是 a true b true c true 下面的代码是否有更简洁的版本来实现此目的 var my
  • React/Redux bundle.js 太大

    我有一个小型的 React 项目 Webpack生成的bundle js大小为6 3Mb 如何将大小减小到 github webpack config js module exports devtool inline source map
  • 在 JavaScript 中定位提示弹出窗口

    我有一个如下所示的 JavaScript 提示 我想将提示放在屏幕中心 如何使用 javascript 做到这一点 function showUpdate var x var name prompt Please enter your na
  • 改进 D3 序列旭日示例

    This D3示例作为我的出发点 http bl ocks org kerryrodden 7090426 http bl ocks org kerryrodden 7090426 我想更改提供图表的数据 并且我做了以下新示例 http j
  • 如何在一段特定时间后在后台运行 ajax 调用? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想在一段特定的时间后显示警报消息 您想继续吗 如果用户同意 则 ajax 调用必须在后台运行 否则取消 ajax 调用 那么请告诉我
  • Rails 递归地包含 javascripts 资源文件夹

    我了解如何将一个 JavaScript 文件添加到 Rails 资产管道中 只需添加 require filename 到 application js 但是如何在一个文件夹下包含多个 javascript 文件 vendor assets
  • 如何将函数传递给 JavaScript Web Worker

    我想通过一个 或多个 函数传递postMessage 给网络工作者 因为我无法引用常规文件 为了启动 Web Worker 我将一个对象 URL 从 Blob 创建 传递给Worker构造函数 然后我传递一条消息 但到目前为止还没有在消息中
  • Phonegap facebook 插件:android 的各种问题

    我正在尝试将 Phonegap 3 1 与 Phonegap facebook plugin 集成 以使我的应用程序能够使用 facebook 登录 https github com phonegap phonegap facebook p
  • 从相机视图中拖动锁定在一定距离/半径处的对象

    我在场景中心有一个相机 距离相机 z 400 处有 1 个球体 其父级位于中心 我想从视图中向上 向下 向左 向右拖动球体 但同时不改变它相对于中心的 z 位置 我最终使用了另一个球体并使其不可见 添加side THREE DoubleSi
  • (0, eval) () 的作用是什么? [复制]

    这个问题在这里已经有答案了 以下内容来自这个问题 https stackoverflow com questions 14119988 return this 0 evalthis 14120023 14120023 function q
  • 如何修复 getImageData() 错误画布已被跨源数据污染?

    我的代码在本地主机上运行得很好 但在网站上却不起作用 我从控制台收到此错误 对于这一行 getImageData x y 1 1 data Uncaught SecurityError Failed to execute getImageD
  • 如何在 JavaScript 中对关联数组进行排序?

    我需要为我的一个项目通过 JS 对关联数组进行排序 我发现这个函数在 Firefox 中运行得很好 但不幸的是它在 IE8 OPERA CHROME 中不起作用 无法找到使其在其他浏览器中运行的方法 或者找到另一个适合该目的的函数 我真的很
  • matlab中求和函数句柄

    Hi我试图对两个函数句柄求和 但它不起作用 例如 y1 x x x y2 x x x 3 x y3 y1 y2 我收到的错误是 对于 function handle 类型的输入参数 未定义函数或方法 plus 这只是一个小例子 实际上我实际

随机推荐

  • 三维语义分割三个数据集

    随着之后的使用 可能会有一些补充 indoor datasets NYU V2 5 S3DIS 6 ScanNet 7 and outdoor datasets Semantic 3D 8 KITTI 9 vKITTI 10 semanti
  • C++ - STL标准库

    1 C STL标准库简介 长久以来 软件界一直希望建立一种可重复利用的东西 以及一种得以制造出 可重复运用的东西 的方法 从函数 functions 类别 classes 函数库 function libraries 类别库 class l
  • 并行编程的几种常见框架总结

    1 OpenMP 是基于共享内存系统的并行编程和框架 只需要在串行程序中 需要并行的部分添加一行关键字 pragma omp parallel for 来标注接下来的for循环分解到多个线程上执行 两个缺点 并行后会改变原来for循环的顺序
  • 阿里云服务器(centos7) 设置mysql账号密码开放3306端口实现远程登陆

    在阿里云服务器上 centos7 下载好了mysql并安装上去 但是暂未设置账号密码 远程登陆mysql并不可行 这里有两个问题需要我们去解决 设置账号密码 远程登陆mysql 一 设置账号密码 1 登陆远程服务器 2 查看mysql版本
  • 随机函数详解+浅谈洗牌算法

    在C 中的 rand 函数可以用来产生随机数 在使用 rand 函数的时候 首先需要包含头文件 include
  • 屏幕录制软件camtasia studio 8序列号激活

    注册名 TEAM MESMERiZE序列号 3MHCA 5DMCV H89T8 V8GML W6FB8打开hosts文件 C Windows System32 drivers etc hosts把下面两个添加进去 没有 直接复制到hosts
  • 计算机网络两台主机互相通信过程概览

    两台主机互通过程 地面 物理层信息 路 数据链路层 使物理层更好的传输 车 网络层 实现异构网络的互联 货物 传输层 实现不同主机的进程之间的通讯 TCP 楼 应用层 为应用进程提供服务 TCP IP结构 应用层 提供系统与用户的接口 传输
  • 反序列化漏洞

    什么是序列化 序列化 serialize 是将对象的状态信息转换为可以存储或传输的形式的过程 在序列化期间 对象将其当前状态写入到临时或持久性存储区 以后 可以通过从存储区中读取或反序列化对象的状态 重新创建该对象 将状态信息保存为字符串
  • android 开发(一些控件用法)

    1 属性 XML标记内部id语法 android id id button 号表示这是一个新的资源名称 引用Android资源Id时不需要加 但是需要加android命名空间 android id android id button 引用创
  • 算法系列-leetcode-34.二叉树中和为某一值的路径

    剑指 Offer 34 二叉树中和为某一值的路径 中等 给你二叉树的根节点 root 和一个整数目标和 targetSum 找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径 叶子节点 是指没有子节点的节点 示例 1 输入 root
  • 【会议资源】2022年第三届自动化科学与工程国际会议(JCASE 2022)

    2022年第三届自动化科学与工程国际会议 JCASE 2022 重要信息 会议网址 www ijcase org 会议时间 2022年10月14 16日 召开地点 中国成都 截稿时间 2022年8月30日 录用通知 投稿后2周内 收录检索
  • Spring给对象属性赋值的三种注入方式

    bean类 package com zxh model public class Student private String username private String password private Integer id publ
  • 2021年06月学习

    daily plan 2021 06 2021年06月 聊天室代码 https www jianshu com p b4e2a555ef4c https cshihong github io 2017 08 20 E5 9F BA E4 B
  • 第十一届蓝桥杯 D 题——REPEAT程序(文件数据读取与处理)

    前言 蓝桥杯不时会考察对文件的读取和处理 prog txt 解题思路 首先 我们将题目中给出的样例拿出来分析 REPEAT 2 A A 4 REPEAT 5 REPEAT 6 A A 5 A A 7 A A 8 A A 9 可得 式子 与
  • upload-labs详细教程

    目录 第一关 js检查 第二关 Content Type 第三关 黑名单验证 第四关 黑名单验证 htaccess绕过 第五关 黑名单验证 user ini 第六关 空格绕过 第七关 点绕过 第八关 DATA绕过 第九关 空格 绕过 第十一
  • 利用matlab从图片中提取曲线坐标数据

    目录 0 引言 1 思路详解与分析 2 MATLAB程序 0 引言 在读文献的时 经常遇到这样的情况 文章里提出的方法好有趣啊 好想拿文中用的数据来试试看看能不能得到相近的结果 可是文中只有根据原始数据绘制的曲线图 没有数据 如下图所示 此
  • LAMP系统构建论文

    毕业论文中文摘要 随着信息技术的不断发展 网络技术的不断完善 各种服务类平台层出不穷 在这样的环境下 Lamp系统架构应运而生了 并且经过不断的完善 俨然已成为国内外首屈一指的大型服务平台之一 Lamp Linux Apache MySQL
  • vue+阿里的G2图表-antv+折线图

    前言 之前使用的图表是echarts highcharts两个常用图表的 现在的话因为项目需要和别的原因也接触使用了阿里的g2图表 感觉效果还是挺好的 在这里分享下 官网入口 实现效果 实现步骤 第一 安装插件 npm install an
  • VS code 运行C/C++文件

    VS code 运行C C 文件 搞了一下午 搞得头疼 网上的教程五花八门 奈何VS code版本更新太快 于是 就出现了各种bug 就很难受 不过最终终于成功啦 所以做一个简短的小结 防止自己以后再装就忘了 第一步 下载mingw 这个直
  • 计算KL散度与JS散度的MATLAB程序-简单好用

    阅读目录 Content MATLAB小函数 计算KL散度与JS散度 1 MATLAB程序 2 结果 MATLAB程序 计算KL散度与JS散度 问题 给定两个向量 计算这两个向量之间的Kullback Leibler Divergence与