MATLAB:将两个数组转换为稀疏矩阵

发布于 2024-08-30 07:58:15 字数 304 浏览 2 评论 0原文

我正在寻找将两个数组转换为稀疏矩阵的命令或技巧。这两个数组包含 x 值和 y 值,它们给出笛卡尔坐标系中的坐标。我想对坐标进行分组,如果该值位于 x 轴和 y 轴上的某个值之间。

% MATLAB
x_i = find(x > 0.1 & x < 0.9);
y_i = find(y > 0.4 & y < 0.8);

%Then I want to find indicies which are located in both x_i and y_i

这个小技巧有简单的方法吗?

I'm looking for an a command or trick to convert two arrays to a sparse matrix. The two arrays contain x-values and y-values, which gives a coordinate in the cartesian coordinate system. I want to group the coordinates, which if the value is between some value on the x-axes and the y-axes.

% MATLAB
x_i = find(x > 0.1 & x < 0.9);
y_i = find(y > 0.4 & y < 0.8);

%Then I want to find indicies which are located in both x_i and y_i

Is there an easy way to this little trick?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

心奴独伤 2024-09-06 07:58:15

假设 xy 具有相同的形状(如果它们是坐标,则它们应该具有相同的形状),您可以简单地编写

commonIndices = find(x > 0.1 & x < 0.9 & y > 0.4 & y < 0.8);

如果您想要一种通用的方法来查找常见的数字对于两个列表,您可以使用相交

commonEntries = intersect(x_i,y_i);

Assuming that x and y have the same shape (which they should if they're coordinates), you can simply write

commonIndices = find(x > 0.1 & x < 0.9 & y > 0.4 & y < 0.8);

If you want a general way to find numbers that are common to two lists, you can use intersect

commonEntries = intersect(x_i,y_i);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文