How to match two arrays in Matlab

조회 수: 16 (최근 30일)
Yro
Yro 2020년 3월 19일
댓글: Yro 2020년 3월 20일
Hi, I want to know if it is possible to match the values of an array (cell by cell) A (:, 1) with an array B (:, 2) so that when calling any array C (:, 1) it gets the values of B (:, 2). Thanks in advance.
A = B = input C =
1 21 22 1
2 10 11 3
3 23 25 6
4 33 30 8
5 32 35 7
6 21 20 5
7 25 27 4
8 24 18 9
9 19 16 10
10 10 33 2
  댓글 수: 7
BobH
BobH 2020년 3월 19일
C seems to a selector array. The value in C is an index into A and B -?
Yro
Yro 2020년 3월 20일
편집: Yro 2020년 3월 20일
Hi, thanks for your attention, the C array are random values to read from a file, what I need is, once read, get the values corresponding to B. Something like this:
1 = [21 22]
3 = [23 25]
6 = [21 20]
...

댓글을 달려면 로그인하십시오.

채택된 답변

Ameer Hamza
Ameer Hamza 2020년 3월 20일
You can do this type of indexing as follows
A = (1:10)';
B = [21 22;
10 11;
23 25;
33 30;
32 35;
21 20;
25 27;
24 18;
19 16;
10 33];
C = [1 3 6 8 7 5 4 9 10 2]';
D = B(C,:)
result
D =
21 22
23 25
21 20
24 18
25 27
32 35
33 30
19 16
10 33
10 11
  댓글 수: 2
BobH
BobH 2020년 3월 20일
The original question relied on values in A to locate the proper row in B. If A might be something other than 1-10 then it must be part of the solution. If A is merely a row index for B then there is no need for A.
Yro
Yro 2020년 3월 20일
Thank you very much, it works. Thank you all for your time and attention. Really very grateful.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

BobH
BobH 2020년 3월 19일
편집: BobH 2020년 3월 19일
Is this what you are trying to get? Second column of B based on C matching A
A = 1:10;
B = [21 22;10 11;23 25;33 30;32 35;21 20;25 27;24 18;19 16;10 33];
C = [1 3 6 8 7 5 4 9 10 2];
arrayfun(@(X) B( A(X), 2 ), C )
ans =
22 25 20 18 27 35 30 16 33 11
  댓글 수: 2
Yro
Yro 2020년 3월 20일
Thanks for your attention, something like that, but I really need, as I described earlier, something like this for the values of array:
1 = [21 22]
3 = [23 25]
6 = [21 20]
...
BobH
BobH 2020년 3월 20일
Please update the original question to reflect your desired result. As it stands now, you are only asking for the second column of B "...it gets the values of B (:, 2)"

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by