在双阵列的N.th尺寸快速欧几里德规范
Y = DNorm2(X,N)
INPUT:
X:真正的双阵列。
N:维度进行操作。
OUTPUT:
Y:超过N.th尺寸欧几里得范数:Y = SQRT(总和(X * X,N))。
的Y N.th尺寸的长度为1。
NaN的考虑。
Matlab的内置功能NORM是快的载体,但矩阵的矩阵范说。为载体的其他有效的方法(!):
Y = SQRT(总和(X * X)。);
Y = SQRT(X * X');%行向量,比DNorm2更快!
而詹姆斯Tursa的MTIMESX是非常快的载体还,可以在阵列还的1维操作:
X =兰特(100,100);X =重塑(X,100,1,100);
Y = SQRT(mtimesx(X, 'T',X));
但是对于数组DNorm2是快了,我没有看到一个办法适用MTIMESX拖尾的尺寸,而无需耗时换位。
汇编:
这个功能在使用前必须编译:
MEX -O DNorm2.c
见DNorm2.c了解详细说明。
测试:运行uTest_DNorm2测试的有效性和速度。
注:参见DNorm2.c为根据X的尺寸策略来优化处理速度
不幸的是这个功能是不是多线程。Assistence包括OMP会很欢迎。
测试:Matlab的6.5,7.7,7.8,WinXP中,32位
编译:LCC2.4 / 3.8,BCC5.5,OWC1.8,MSVC2008
假设的兼容性:较高的Matlab的版本,苹果机,Linux 64位
扬(2020)。DNorm2(//www.tianjin-qmedu.com/matlabcentral/fileexchange/29035-dnorm2),MATLAB中央文件交换。检索。
1.1.0.0 | 修正:错误校验在64个系统失败DNorm2(X,0)。感谢布鲁诺! |
门迪BAREL(查看资料)
大!
一月(查看资料)
第一版本不在64台机器拒绝DNorm2(X,0)。请等待“DNorm2_16Oct2010.zip”可以在这里找到。