【问题标题】:MATLAB - Correlation with VectorsMATLAB - 与向量的相关性
【发布时间】:2015-08-12 09:51:50
【问题描述】:

我有两个不同大小的向量 XYZ。我们可以称它为 Data1 和 Data2,其中:

Data1 = [1000 3:55 2000; ...
          950 2200 4.5; ...
         1050 2350 5.5; ...
         1025 2500 6; ...
         1075 2600 7; ...
         1000 2700 8];

Data2 = [1000 2650 7.95; ...
         1000 2750 8.16; ...
         1000 2700 9; ...
         1025 3000 10];

点之间可接受的最小差异是位置(X,Y)为 100 米,深度为 0.2 米(Z)。

在这种情况下,向量之间的点将是 P_Data1 = [1000 2700 8] 和 P_Data2 = [1000 2650 7.95],因为距离是可以接受的,深度是最近的。

有没有人知道可以进行这种关联的函数来帮助我?我认为在 Matalab 中有一些解决问题的功能和高性能,因为我会为数千个点做这个计算。

我目前正在使用嵌套循环,但性能很差,因为我计算所有距离,然后计算每个点深度之间的所有差异并过滤矩阵。

简而言之,我想在定义的范围内找到两个不同大小的向量之间深度越来越低的点。

感谢大家的帮助!

【问题讨论】:

  • 所以您正在寻找同时满足 x 和 y 要求的最近深度测量?
  • Data1 有错误。我认为应该是1000 3.55 2000; 而不是3:55
  • 嗯,这是一个愚蠢的问题,但我认为您不需要相关性。根据您所说,您可以简单地从 Data 2 中减去 Data 1,它返回一个矩阵,取它的绝对值(等于取每个元素的绝对值),然后过滤第 1 列和第 2 列的条件(简称XY)必须小于200,第3列必须小于0.2,我这里做错了吗?

标签: matlab coordinates distance correlation depth


【解决方案1】:
Data1 = [950 2200 4.5; ...
         1050 2350 5.5; ...
         1025 2500 6; ...
         1075 2600 7; ...
         1000 2700 8];

Data2 = [1000 2650 7.95; ...
         1000 2750 8.16; ...
         1000 2700 9; ...
         1025 3000 10];

vec1 = Data1(:,3);
vec2 = Data2(:,3);
[p,q] = meshgrid(vec1, vec2);
output1 = 0; %initial set

while output1 == 0
sub = [abs(p(:)-q(:))];
[M,I] = min(sub);
IndData1 = floor(I/4);
IndData2 = mod(I,IndData1);

%this basically computes the smallest possible Z 
%Check if it works for condition 2:
checkcolumn1 = abs(Data1(IndData1,1) - Data2(IndData2,1));
checkcolumn2 = abs(Data1(IndData1,2) - Data2(IndData2,2));
if checkcolumn1 < 200 && checkcolumn2 <200
   output1 = Data1(IndData1,:);
   output2 = Data2(IndData2,:);
else
min(sub) = 1000000 %huge high number to basically remove the min
end
end

所以这个程序应该按照你的要求做,基本上,它首先计算Z列的最小值,你可以顺便添加一个它必须小于0.2的条件,我只是假设必须有一些值小于 0.2。然后它会尝试查看是否可以满足第一个条件。虽然它使用循环进行搜索,但它实际上非常高效,因为它一旦找到正确的值就会跳出循环。

【讨论】:

    猜你喜欢
    • 2013-04-18
    • 2018-05-09
    • 1970-01-01
    • 2016-01-22
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 2017-06-01
    • 1970-01-01
    相关资源
    最近更新 更多