图片缩略图

DNorm2

version 1.1.0.0 (10.4 KB) by 1月
一个快速C-Mex数组的指定dim的欧几里德范数
5.0
1评级

10下载

更新2010年10月15日

视图版本历史

查看许可协议

一个DOUBLE数组的n维快速欧几里德范数

Y = DNorm2(X, N)
输入:
真双阵列。
N:操作尺寸。
输出:
第N维:Y =√(sum(X .* X, N))。
Y的第n维的长度是1。
南的。

Matlab的内置函数范数是快速的向量,但矩阵范数是回复。vector(!)的其他有效方法:
Y =√(sum(X .* X));
Y =√(X * X');%行向量,比DNorm2更快!
James Tursa的MTIMESX对于向量也非常快,并且可以在数组的第一维上操作:
X = rand(100, 100);X =重塑(X, 100, 1, 100);
mtimesx(X, 't', X));
但是对于数组,DNorm2更快,而且我没有看到一种方法可以在不进行耗时的换位操作的情况下对尾随维度应用MTIMESX。

编译:
这个函数必须在使用之前编译:
墨西哥人- o DNorm2.c
详见DNorm2.c。

TEST:执行uTest_DNorm2测试有效性和速度。

注意:参见DNorm2.c,了解根据X的大小优化处理速度的策略。
不幸的是,这个函数不是多线程的。非常欢迎将管理方案包括在内的援助。

测试:Matlab 6.5, 7.7, 7.8, WinXP, 32位
编译器:LCC2.4/3.8, BCC5.5, OWC1.8, MSVC2008
假设兼容性:更高的Matlab版本,Mac, Linux, 64位

引用作为

1月(2021)。DNorm2(//www.tatmou.com/matlabcentral/fileexchange/29035-dnorm2), MATLAB中央文件交换。检索

意见及评分(2

Mendi Barel

太棒了!

1月

第一个版本不拒绝64位机器上的DNorm2(X, 0)。请等待“DNorm2_16Oct2010.zip”。

MATLAB版本兼容性
创建R2009a
与任何版本兼容
平台的兼容性
窗户 macOS Linux

社区寻宝

在MATLAB中心找到宝藏,并发现社区可以如何帮助您!

开始狩猎!