Search rows of a matrix on another

1 回表示 (過去 30 日間)
Matlab User
Matlab User 2015 年 11 月 16 日
コメント済み: Matlab User 2015 年 11 月 16 日
I have two matricies. The first, A, is large (1968x100 double) and the second, T, is smaller (1968x1). In matrix A, each row contains unique elements corresponding to the smaller matrix. For example, A(1,:) = 6 2 3 53..... (up until 100 columns). What I need to do is search in T for the corresponding ROWS and extract their numeric value. So for this example, I need to search in T for the 6th, 2nd, 3rd, 53rd rows and extract their values.
I hope this is clear !!! Any help is much appreciated.
  2 件のコメント
Jan
Jan 2015 年 11 月 16 日
編集済み: Jan 2015 年 11 月 16 日
A small example with [3 x 4] matrices might explain the problem uniquely.
Do you really want to search the "corresponding rows in T", when T has one row only? Do you mean searching the rows in A instead?
Matlab User
Matlab User 2015 年 11 月 16 日
For each row in A there are 100 elements. T has 1968 rows and 1 column. So, say for example A=[2 3 5;1 2 4;7 8 10], and T=[200;500;750,204,567..... up to 1968 rows], for A(1,:) I want to report the value of the 2nd, 3rd and 5th rows in T, i.e. 500,750 and 567. I hope this is clearer.

サインインしてコメントする。

採用された回答

Guillaume
Guillaume 2015 年 11 月 16 日
編集済み: Guillaume 2015 年 11 月 16 日
There is no search involved. It's simple matrix indexing:
A = [2 3 5;
1 2 4;
7 8 10];
T = [200; 500; 750; 204; 567; 123; 456; 789; 987; 654; 321];
newA = A; newA(A == 0) = 1; %to cope with zeros
values = T(newA); %that's it!
values(A == 0) = 0 %assuming that you want 0 for A == 0
Note that the shape of T is irrelevant as long as A is a matrix. T can be a column or row vector (or even a matrix).
edited to cope with 0s in A
  3 件のコメント
Guillaume
Guillaume 2015 年 11 月 16 日
編集済み: Guillaume 2015 年 11 月 16 日
The zeros are indeed a problem. What is supposed to be returned for the zeros?
I've edited my answer to output 0 for these.
Matlab User
Matlab User 2015 年 11 月 16 日
Thankyou that is just what I needed!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeResizing and Reshaping Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by