【问题标题】:How to compare any value in one matrix with any value in another matrix without using loops?如何在不使用循环的情况下将一个矩阵中的任何值与另一个矩阵中的任何值进行比较?
【发布时间】:2017-06-11 10:04:15
【问题描述】:

在下面的代码中,我有 4 个节点的 x 任意 y 坐标。前两个节点,即 1 和 2 属于 c 类(矩阵 c),而后两个节点,即 3 和 4 属于 d 类(矩阵 d)。 “dist”表示所有节点之间的距离。 matlab中是否有任何命令可以用来判断c中的任何节点与d中的任何节点的距离是否小于R,例如

if distance of any of the nodes in C from any of the nodes in D > R
%do this
end

我可以使用 for 循环来做到这一点,但要寻找更短的方法。谢谢

x=[1 2 4 4];
y=[3 5 6 1];
range=R
dist=[0.7 1.6 3.5 3.5; 2.9 0.7 1.6 4.7; 4.9 2.9 0.7 5.5; 3.8 4.3 4.5 0.7];
c=[1 2];
d=[3 4];

【问题讨论】:

标签: matlab


【解决方案1】:

我不完全理解你的问题,但从我得到你正在寻找的功能是:

  • A>B - Matlab 中的二元运算符比较元素
  • any - 如果任何元素为真,则返回真
  • pdist2(a,b) - 比较向量 a 中所有观测值与另一个向量 b 中所有观测值的距离。

我很乐意更新更准确的答案,但请提供您想要的完整示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-14
    • 2023-03-06
    • 2017-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多