gpt4 book ai didi

arrays - MATLAB:成对差异矩阵

转载 作者:太空宇宙 更新时间:2023-11-03 19:21:46 25 4
gpt4 key购买 nike

我有一个 Nx1 值向量。我想做的是创建一个 NxN 矩阵,其中每个值代表第 i 个值和第 j 个值之间的差异 - 有点像一个大的相关矩阵。我已经用一个循环完成了这个,但我正在寻找一种更优雅的方法来使用 MATLAB 的矢量化功能,因为这个矢量可能会变得非常大。

最佳答案

关于

    diff__ = bsxfun(@minus,repmat(A,N,1),A');

可以肯定地改进

    diff__ = bsxfun(@minus,A,A');

?

一些性能检查:

   N = 1000;
v = rand(N,1);

tic
diff__ = bsxfun(@minus,repmat(v,N,1),v');
toc

tic
diff__ = bsxfun(@minus,v,v');
toc

结果

  Elapsed time is 105.343344 seconds.
Elapsed time is 1.124946 seconds.

(Tim的数据检查:

差异__ =

 0     2     6     4
-2 0 4 2
-6 -4 0 -2
-4 -2 2 0

).

关于arrays - MATLAB:成对差异矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13422606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com