mapping between two different matrices

9 views (last 30 days)
I have a matrix a=[1 2;3 4;5 6] and i have another matrix b=[1 2 3;1 2 3;1 2 3;1 2 3;1 2 3]. Now I want to map between two matrices in such a way that the first row of matrix 'a' is indicating the first column of matrix 'b'. Like, if I type [1 2], it should show [1;1;1;1;1]. If I type [3 4] it should show [2;2;2;2;2].
How to do that?

Accepted Answer

Fangjun Jiang
Fangjun Jiang on 24 Apr 2023
a=[1 2;3 4;5 6];
b=[1 2 3;1 2 3;1 2 3;1 2 3;1 2 3];
c=[1 2];
[~,index]=ismember(c,a,'rows');
b(:,index)
ans = 5×1
1 1 1 1 1

More Answers (2)

Kevin Holly
Kevin Holly on 24 Apr 2023
a=[1 2;3 4;5 6]
a = 3×2
1 2 3 4 5 6
b=[1 2 3;1 2 3;1 2 3;1 2 3;1 2 3]
b = 5×3
1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
index = 3;
output = yourmap(a,b,index)
output = 5×1
2 2 2 2 2
index = 6;
output = yourmap(a,b,index)
output = 5×1
3 3 3 3 3
index = [1 2];
output = yourmap(a,b,index)
output = 5×2
1 1 1 1 1 1 1 1 1 1
function output = yourmap(a,b,index)
[row,column] = find(a==index);
output = b(:,row);
end

Walter Roberson
Walter Roberson on 24 Apr 2023
b(:,a(1,1))

Community Treasure Hunt

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

Start Hunting!