gpt4 book ai didi

matlab - 通过 "List of Points"访问矩阵元素

转载 作者:行者123 更新时间:2023-12-02 05:29:03 31 4
gpt4 key购买 nike

我有一些大型数据矩阵,以及一个包含 x 和 y 位置的两列矩阵,那么有没有更简单的方法来处理与这些点对应的数据元素:

for adj = 1:size(loc,1)
testFunc(data1(loc(i,2),loc(i,1)), data2(loc(i,2),loc(i,1)), othervals)
end

大多数情况下,我正在寻找一种通过更接近 data1(loc(i))

的方式来访问数据元素的方法

最佳答案

您想要的是通过线性索引访问 data 的元素。线性索引首先沿第一个维度递增,然后沿第二个维度递增,依此类推。例如,一个 3×2 数组的元素将按以下顺序寻址

1 3 5
2 4 6

因此,要通过线性索引获取 2×3 数组的元素 (2,1),您需要调用 array(3)。要在线性索引和下标(例如 2,3 对)之间进行转换,您可以分别使用 ind2subsub2ind

在你的情况下,你会跑

linIdx = sub2ind(size(data),loc(:,2),loc(:,1))

如果 loc 的第一列索引到 data 的列,而 loc 的第二列索引到行。

然后你可以遍历 linIdx 将循环内的函数调用更改为

testFunc(data1(linIdx(i)), data2(linIdx(i)), othervals)

关于matlab - 通过 "List of Points"访问矩阵元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12658536/

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