使用MATLAB快速计算Khatri-Rao积
使用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积相关推荐
- matlab khatri rao积,Khatri-Rao乘积
补充资料:Rao-Cramér不等式 Rao-Cramér不等式 Rao - Cramer inequality 的估计量,并称b(口)为T的偏倚(b此).那么,在关于族{p(刘因}的一定正则性条件下 ...
- matlab khatri rao积,关于矩阵Khatri-Rao积的一些迹不等式
~~关于矩阵Khatri-Rao积的一些迹不等式@胥德平$成都理工大学信息管理学院!四川成都610059 @杜鹃$成都理工大学信息管理学院!四川成都610059 @韦维$贵州大学理学院!贵州贵阳550 ...
- Kernel Trick——核机制,更高维空间内积的快速计算
这是小弟的第一篇技术博客,功力尚浅,写的不准确不专业的地方,还请各位同仁,多多包涵. blog归正传. 引言 理论 1 Kernel SVM 2 2阶多项式核 3 常见核的种类 应用 1 Kernel ...
- 编写matlab语句计算试题,MATLAB测验考试题
<MATLAB测验考试题>由会员分享,可在线阅读,更多相关<MATLAB测验考试题(12页珍藏版)>请在装配图网上搜索. 1.一.填空题1.在MATLAB中,清除所有变量的命令 ...
- 直扩 单音干扰抑制 matlab,数学计算软件MATLAB资料集锦分享
数学计算软件MATLAB资料集锦分享 (2014-08-20 17:07:08) 标签: matlab 数学建模 仿真模拟 整理了一些有关MATLAB资料如下: 1.H型可逆PWM变换器的控制方式解析 ...
- matlab官方文档翻译之MATLAB 快速入门
来源:https://cn.mathworks.com/help/matlab/learn_matlab/desktop.html 这个是从官方网站上一条一条翻译下去的,自己也是初学者在学习. Des ...
- matlab实现计算全息,MATLAB实现计算全息.doc
MATLAB实现计算全息.doc PAGE PAGE 4 用MATLAB软件和液晶光阀实现傅立叶变换计算全息制作及其再现姚雪灿 指导教师 阎晓娜 (上海大学理学院物理系,上海 200444) 摘要:利 ...
- Matlab快速傅里叶变换程序(FFT)编写
Matlab快速傅里叶变换程序(FFT)编写 (不利用Matlab内置fft) 最近在学习数字信号处理,正好到快速傅里叶变换,写一个基于基2FFT算法的傅里叶变换.利用原理:DIT-FFT(时域抽取法 ...
- matlab gausspdf,《精通MATLAB科学计算》(王正林 编著).pdf
<精通MATLAB科学计算>(王正林编著).pdf<精通MATLAB科学计算>(王正林编著).pdf [General Information] 书名=精通MATLAB科学计算 ...
最新文章
- 渐进式Web应用程序的深入概述
- vpwm的控制变频_变频V/F和矢量控制你知道区别吗?据说这四种控制没有几人能说清...
- 殊途同归的策略梯度与零阶优化
- 智能手机的开放与封闭刍议
- ffmpeg-0.8 开源编码解码库从linux下移植到windows vs2005
- php5.4环境升级,CentOS环境中编译升级PHP至5.4版本记录
- 苹果隐藏app_iOS 14的隐藏功能盘点:不知道等于白更新!
- .NET四种注释规范
- 常见物理性能测试仪器设备档案
- 没学历,如何成为一名优秀的Java程序员
- 全球地区选择,支持中英文切换。国家-省市-城市-地区
- 异常值监测的方法 Tukey test
- pm2 重启策略(restart strategies)
- 华东师范 2018年 研究生复试上机题解合集
- 阿里二面:设计一个电商平台积分兑换系统!
- 毕业设计 基于大数据住房数据分析与可视化 - python
- 攻防世界pwn高手进阶(持续更新)
- Android 4游戏编程入门经典
- 易飞ERP和钉钉办公集成——ERP移动审批解决方案
- Latex 数学公式学习
热门文章
- 基于MSP430G2231实现的频率计
- Django项目实战——8—(判断用户是否登录并返回JSON、Django发送邮件的配置、生成邮箱验证链接、验证邮箱后端逻辑)
- 计量经济学计算机输出结果,计量经济学作业答案A.doc
- 计算机硬盘的容量比光盘大得多,gis水平考题.doc
- win10 安装apex_英特尔发布新版Win10 UWD驱动程序优化对APEX支持
- 高中关于计算机英语作文,关于科学的英语作文高中优秀作文(精选6篇)
- 什么是光耦隔离?光耦隔离的主要作用
- 目标检测~无人机视角
- 3D视图生成器PS插件汉化版 Isometrical-3D View Generator-Photoshop Plugin
- 微信为什么没有城市服务器,微信没有城市服务怎么办?微信添加城市服务的教程...