finding elements in a vector from another vector

127 次查看(过去 30 天)
I'd like to create a vector y with the positions of the elements of x in m.
i.e.
x=0 (first element of x) has and index of 1 in m. So y(1)=1
x=241 (second element of x) has index of 242 in x. So y(2)=242
m and x are in attached

采纳的回答

Star Strider
Star Strider 2020-7-18
Try this:
M = load('m.mat');
X = load('x.mat');
m = M.m;
x = X.x;
[~,y] = ismembertol(x, m, 1E-4)
producing:
y =
1
242
937
2001
3306
4695
6001
7065
7759
8001
I checked that separately for a few values using find, and it appears to produce the correct result.
.
  8 个评论
Paul Rogers
Paul Rogers 2020-7-18
I think it's best we don't edit comment so people can read different options and figure it out based on their version

请先登录,再进行评论。

更多回答(1 个)

Fangjun Jiang
Fangjun Jiang 2020-7-18
编辑:Fangjun Jiang 2020-7-18
[~,y]=ismember(x,m)

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

产品


版本

R2014b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by