MATLAB:为存储在矩阵中的点提供 ID 以区分邻居
MATLAB: give IDs to points stored in a matrix to distinguish between neighbours
虽然这个标题一开始听起来可能微不足道,但我希望有人能通过给我一些我可以使用的 MATLAB 函数的提示来帮助我:
我有一个点矩阵,每个点的属性(阅读:具有属性的个体)的形式为(x,y,方向):
A = [1 1 45°]
B = [3 1 225°]
C = [0 2 90°]
D = [5 5 187°]
粒子A以概率P选择B和C中的一个作为邻居并根据其邻居改变方向(而D距离太远)EDIT 并以恒定的速度向它移动(我基本上忘记了问题中最重要的部分......,愚蠢的我)。
我现在已经实现了一个名为的矩阵:
I = [1 1 45; 3 1 225; 0 2 90; 5 5 187];
在一个场景中,A 选择 C(随机)作为有吸引力的邻居并转向 C。这意味着我的程序必须能够区分 B 和 C。
是否存在像 "point" 这样的类型,您可以在其中存储带有 ID 的属性?我必须使用向量而不是一个矩阵吗?我现在和很多人一起工作,所以预先分配 50 个向量并不是最优的(这就是为什么选择矩阵)。
明确一个问题:
我有很多点,我需要为每个点将 3 个属性存储到一个 ID,然后用 IDx 检查一个点,其他点用 IDy 是否可以到达。
数学现在是无关紧要的,但我需要 MATLAB 中的一个函数,它提供了一个比将这些信息存储在矩阵中更好的选择(因为那个似乎不利于识别每个点)。这是个人植绒模拟的一部分。
如果有人能帮我解决这个问题,我会很高兴!如果我以不好的方式问这个问题,请给我反馈并澄清。
谢谢!
根据我从您那里了解到的情况,可以执行以下操作:
当您将元素存储在原始矩阵中时,让行索引成为它们的 ID。
由于点不会改变位置,只会改变方向,因此您只能计算一次矩阵或相对距离(大小为 n^2 的上三角矩阵)。
在距离矩阵中,使用第一个矩阵中的 ID 作为第二个矩阵中相同对象的 ID。您的搜索将是对 ~0.5*n^2 个元素的最小搜索。
虽然这个标题一开始听起来可能微不足道,但我希望有人能通过给我一些我可以使用的 MATLAB 函数的提示来帮助我:
我有一个点矩阵,每个点的属性(阅读:具有属性的个体)的形式为(x,y,方向):
A = [1 1 45°]
B = [3 1 225°]
C = [0 2 90°]
D = [5 5 187°]
粒子A以概率P选择B和C中的一个作为邻居并根据其邻居改变方向(而D距离太远)EDIT 并以恒定的速度向它移动(我基本上忘记了问题中最重要的部分......,愚蠢的我)。
我现在已经实现了一个名为的矩阵:
I = [1 1 45; 3 1 225; 0 2 90; 5 5 187];
在一个场景中,A 选择 C(随机)作为有吸引力的邻居并转向 C。这意味着我的程序必须能够区分 B 和 C。
是否存在像 "point" 这样的类型,您可以在其中存储带有 ID 的属性?我必须使用向量而不是一个矩阵吗?我现在和很多人一起工作,所以预先分配 50 个向量并不是最优的(这就是为什么选择矩阵)。
明确一个问题:
我有很多点,我需要为每个点将 3 个属性存储到一个 ID,然后用 IDx 检查一个点,其他点用 IDy 是否可以到达。
数学现在是无关紧要的,但我需要 MATLAB 中的一个函数,它提供了一个比将这些信息存储在矩阵中更好的选择(因为那个似乎不利于识别每个点)。这是个人植绒模拟的一部分。
如果有人能帮我解决这个问题,我会很高兴!如果我以不好的方式问这个问题,请给我反馈并澄清。
谢谢!
根据我从您那里了解到的情况,可以执行以下操作:
当您将元素存储在原始矩阵中时,让行索引成为它们的 ID。
由于点不会改变位置,只会改变方向,因此您只能计算一次矩阵或相对距离(大小为 n^2 的上三角矩阵)。
在距离矩阵中,使用第一个矩阵中的 ID 作为第二个矩阵中相同对象的 ID。您的搜索将是对 ~0.5*n^2 个元素的最小搜索。