文件交换

图像缩略图

mtimesx - 快速矩阵乘以多维支持万博1manbetx

版本1.10.0.0(256 kB) 詹姆斯图马
在某些情况下,Matlab 300% - 400%......真的!

17.4k下载

更新2011年2月23日

查看许可证

mtimesx是一个快速的通用矩阵和标量乘法机,具有以下功能:

- 万博1manbetx直接支持多维(ND,N> 2)阵列
- 万博1manbetx支持转置,共轭转置和共轭预操作
- 万博1manbetx支持单例扩展
- 使用BLAS调用,自定义C循环代码或OpenMP多线程C循环代码
- 可以匹配MATLAB结果完全或大约需要
- 在大多数情况下,可以在速度达到或击败matlab

mtimesx有六种基本操作模式:

- blas:始终使用blas库调用
- 循环:如果可用,始终使用C循环
- 循环分om:始终使用OpenMP多线程C循环(如果有)
- MATLAB:最快的BLA或循环方法与MATLAB完全匹配(默认)
- 速度:即使它与matlab完全不匹配,最快的blas或循环方法
- Speedomp:最快的Blas,LOOPS或Loopomp方法即使它与MATLAB不匹配

MTimesx输入可以:

单身的
双倍的
双稀疏

常规语法是(括号[]中的参数是可选的):

mtimesx([指示])
mtimesx(A [,Transa],B [,Transb] [,指令])

其中Transa,Transb和Directive是可选输入:

Transa =表示A上的预操作的字符:
transb =表示B上的预操作的字符:
预操作可以是任何一个:
'n'或'n'=没有预先操作(如果缺少rans_缺少默认值)
't'或't'=转置
'c'或'c'=缀合物转置
'g'或'g'=共轭(没有转置)
指令=上面列出的模式之一,或其他指令

例子:

c = mtimesx(a,b)%执行计算c = a * b
c = mtimesx(a,'t',b)%执行计算c = a。'* B.
c = mtimesx(a,b,'g')%执行计算c = a *结合(b)
c = mtimesx(a,'c',b,'c')%执行计算c = a'* b'
mtimesx('speedomp','Omp_set_num_Threads(4)')%将Speedomp模式设置为线程数= 4

对于ND情况,前两个维度指定矩阵常见的矩阵。剩余尺寸是复制的,并指定为结果执行单个矩阵的数量。即,MTimesx将这些情况视为2D矩阵阵列,并在关联的映射上执行操作。例如:

如果A(2,3,4,5)和B是(3,6,4,5),那么

mtimesx(a,b)将导致c(2,6,4,5),其中c(:,:,i,j)= a(:,:,i,j)* b(:,:,我,j),i = 1:4,j = 1:5

这相当于Matlab M代码:

c =零(2,6,4,5);
对于m = 1:4
对于n = 1:5
C(:,:,m,n)= a(:,m,n)* b(:,:,m,n);
结尾
结尾

前两个维度必须使用标准矩阵乘法规则符合Transa和Transb Pre-Operation考虑的标准矩阵乘法规则,并且尺寸3:结束必须恰好或单例(等于1)。如果尺寸是单例,则它实际上扩展到所需的大小(即,等于Repmat操作,以将其达到符合实际数据副本但没有实际数据拷贝)。这相当于矩阵乘法的BSXFun能力。

引用

詹姆斯图马(2021年)。mtimesx - 快速矩阵乘以多维支持万博1manbetx(//www.tianjin-qmedu.com/matlabcentral/fileexchange/25977-mtimesx-fast-matrix-multiply-with-multi-dimension-su万博1manbetxpport),matlab中央文件exchange。检索到

Matlab释放兼容性
使用R2007A创建
兼容任何释放
平台兼容性
视窗 苹果系统 Linux.

社区宝藏狩猎

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!