使用MATLAB快速计算Khatri-Rao积

  • Khatri-Rao积介绍
  • 方法介绍
  • 代码
  • 结果验证
  • 总结

Khatri-Rao积介绍

方法介绍

若采用循环的方式逐列计算Kronecker积,当矩阵的列数较多时(比如上百万列),需要调用相同次数的kron函数,耗时较多。借助MATLAB在矩阵运算的优势,我们采用矩阵运算取代循环,以此减少计算时间。

考虑如下的计算:

快读计算Khatri-Rao积的方法如下:
第一步:对F、G矩阵进行如下图所示的操作,将F矩阵的每行复制G矩阵的行数,以下图为例,将F的每行复制2份,并照原来的顺序排列组合成更高阶的矩阵;将矩阵G复制K份,K是F的行数,以下图为例,将矩阵G复制三份,组合成更高阶的矩阵。

第二步:之后将两个扩充后的高阶的矩阵做Hadamard积,计算如下:

根据结果比较,以上计算Khatri-Rao积的方法是正确的。

代码

第一步的代码实现如下:

nR_F=size(F,1);        %F的行数
nR_G=size(G,1);      %G的行数
mul=ones(nR_G,1);
FF=kron(F,mul);     %通过kron函数实现对F矩阵的扩充,得到FF矩阵
GG=repmat(G,nR_F,1);%通过repmat函数实现对G矩阵的扩充,得到GG矩阵

第二步的代码实现如下:

kr=FF.*GG;

整个算法的代码:

function   kr=KR(F,G)     nR_F=size(F,1);        %F的行数nR_G=size(G,1);      %G的行数mul=ones(nR_G,1);FF=kron(F,mul);     %通过kron函数实现对F矩阵的扩充,得到FF矩阵GG=repmat(G,nR_F,1);%通过repmat函数实现对G矩阵的扩充,得到GG矩阵kr=FF.*GG;
end

结果验证


其中kr1函数是采用上述的方法,kr2函数采用了按列循环的方法。

计算结果如下图所示,结果正确。

接下来比较两种计算方法的用时,假设F=G是3×100000的矩阵,分别采用两种方法Khatri-Rao积,计算结果如下图所示,采用本文的矩阵计算方法明显快于按列循环的方法。

继续增加矩阵的列数,当F=G是3×1500000的矩阵,计算结果如下图所示,两种方法的计算速度差异更加明显。

总结

考虑到MATLAB更加适合矩阵运算,本文给出了一种快速计算两个矩阵Khatri-Rao积的方法,计算时间较普通的循环方法大幅缩减。

使用MATLAB快速计算Khatri-Rao积相关推荐

  1. matlab khatri rao积,Khatri-Rao乘积

    补充资料:Rao-Cramér不等式 Rao-Cramér不等式 Rao - Cramer inequality 的估计量,并称b(口)为T的偏倚(b此).那么,在关于族{p(刘因}的一定正则性条件下 ...

  2. matlab khatri rao积,关于矩阵Khatri-Rao积的一些迹不等式

    ~~关于矩阵Khatri-Rao积的一些迹不等式@胥德平$成都理工大学信息管理学院!四川成都610059 @杜鹃$成都理工大学信息管理学院!四川成都610059 @韦维$贵州大学理学院!贵州贵阳550 ...

  3. Kernel Trick——核机制,更高维空间内积的快速计算

    这是小弟的第一篇技术博客,功力尚浅,写的不准确不专业的地方,还请各位同仁,多多包涵. blog归正传. 引言 理论 1 Kernel SVM 2 2阶多项式核 3 常见核的种类 应用 1 Kernel ...

  4. 编写matlab语句计算试题,MATLAB测验考试题

    <MATLAB测验考试题>由会员分享,可在线阅读,更多相关<MATLAB测验考试题(12页珍藏版)>请在装配图网上搜索. 1.一.填空题1.在MATLAB中,清除所有变量的命令 ...

  5. 直扩 单音干扰抑制 matlab,数学计算软件MATLAB资料集锦分享

    数学计算软件MATLAB资料集锦分享 (2014-08-20 17:07:08) 标签: matlab 数学建模 仿真模拟 整理了一些有关MATLAB资料如下: 1.H型可逆PWM变换器的控制方式解析 ...

  6. matlab官方文档翻译之MATLAB 快速入门

    来源:https://cn.mathworks.com/help/matlab/learn_matlab/desktop.html 这个是从官方网站上一条一条翻译下去的,自己也是初学者在学习. Des ...

  7. matlab实现计算全息,MATLAB实现计算全息.doc

    MATLAB实现计算全息.doc PAGE PAGE 4 用MATLAB软件和液晶光阀实现傅立叶变换计算全息制作及其再现姚雪灿 指导教师 阎晓娜 (上海大学理学院物理系,上海 200444) 摘要:利 ...

  8. Matlab快速傅里叶变换程序(FFT)编写

    Matlab快速傅里叶变换程序(FFT)编写 (不利用Matlab内置fft) 最近在学习数字信号处理,正好到快速傅里叶变换,写一个基于基2FFT算法的傅里叶变换.利用原理:DIT-FFT(时域抽取法 ...

  9. matlab gausspdf,《精通MATLAB科学计算》(王正林 编著).pdf

    <精通MATLAB科学计算>(王正林编著).pdf<精通MATLAB科学计算>(王正林编著).pdf [General Information] 书名=精通MATLAB科学计算 ...

最新文章

  1. 渐进式Web应用程序的深入概述
  2. vpwm的控制变频_变频V/F和矢量控制你知道区别吗?据说这四种控制没有几人能说清...
  3. 殊途同归的策略梯度与零阶优化
  4. 智能手机的开放与封闭刍议
  5. ffmpeg-0.8 开源编码解码库从linux下移植到windows vs2005
  6. php5.4环境升级,CentOS环境中编译升级PHP至5.4版本记录
  7. 苹果隐藏app_iOS 14的隐藏功能盘点:不知道等于白更新!
  8. .NET四种注释规范
  9. 常见物理性能测试仪器设备档案
  10. 没学历,如何成为一名优秀的Java程序员
  11. 全球地区选择,支持中英文切换。国家-省市-城市-地区
  12. 异常值监测的方法 Tukey test
  13. pm2 重启策略(restart strategies)
  14. 华东师范 2018年 研究生复试上机题解合集
  15. 阿里二面:设计一个电商平台积分兑换系统!
  16. 毕业设计 基于大数据住房数据分析与可视化 - python
  17. 攻防世界pwn高手进阶(持续更新)
  18. Android 4游戏编程入门经典
  19. 易飞ERP和钉钉办公集成——ERP移动审批解决方案
  20. Latex 数学公式学习

热门文章

  1. 基于MSP430G2231实现的频率计
  2. Django项目实战——8—(判断用户是否登录并返回JSON、Django发送邮件的配置、生成邮箱验证链接、验证邮箱后端逻辑)
  3. 计量经济学计算机输出结果,计量经济学作业答案A.doc
  4. 计算机硬盘的容量比光盘大得多,gis水平考题.doc
  5. win10 安装apex_英特尔发布新版Win10 UWD驱动程序优化对APEX支持
  6. 高中关于计算机英语作文,关于科学的英语作文高中优秀作文(精选6篇)
  7. 什么是光耦隔离?光耦隔离的主要作用
  8. 目标检测~无人机视角
  9. 3D视图生成器PS插件汉化版 Isometrical-3D View Generator-Photoshop Plugin
  10. 微信为什么没有城市服务器,微信没有城市服务怎么办?微信添加城市服务的教程...