Compare two arrays based on indexes
3 次查看(过去 30 天)
显示 更早的评论
Hello,
Please help me with the following:
consider two arrays
A=[19;20;19;20;21;22]; B=[1;1;4;4;4;4];
A user should provide two values, i.e. v1, v2.
A condition (maybe with logical if) should search if v1 belong to A and v2 belong to B.
if those values both belong to A and B, another operation should take place, for example C=100 or C=200;
For example,
If v1=19; && v2=2;
Those values do not belong both in A and B, so C=200
If v1=19; && v2=1;
Those values belong both in A and B, so C=100
The indexes of v1 and v2 in A and B should be the same in order for C=100;
That means that the operation C=100; would take place only in the following combinations:
v1=19; v2=1;
v1=20; v2=1;
v1=19; v2=4;
v1=20; v2=4;
v1=21; v2=4;
v1=22; v2=4;
The condition
If v1=21; && v2=1; theoritically gives C=100;
but the indexes of v1 and v2 in A and B are not equal (5th index in A for v1 and 1st,2nd indexes for v2 in B).
Than you very much,
Best,
Pavlos
0 个评论
回答(1 个)
Andrei Bobrov
2017-7-14
编辑:Andrei Bobrov
2017-7-14
M = [A,B];
V = [v1,v2];
C = [200,100];
out = C(ismember(V,M,'rows')+1);
4 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!