How do I match corresponding rows of class labels to data

6 ビュー (過去 30 日間)
NCA
NCA 2022 年 7 月 8 日
コメント済み: NCA 2022 年 7 月 13 日
I have 838 by 400 matrix as my data, I also have a 275 by 2 file which contains my class labels but they are not organised to match the exact sample rows of the data, I need help with a code to match both so that the sample rows in the data matches the rows in the class labels. Any row that has no corresponding class lebels can be deleted. I need to end up with 275 by 400 data.
Note: The file with the data and the file with the class labels both have similar sample ID column to help idenify the sample rows.
Kinldy let me know if you need more clarification
Thank You
  2 件のコメント
Image Analyst
Image Analyst 2022 年 7 月 9 日
Of course we do - you didn't attach any data or screenshots or images or anything.
If you have any more questions, then attach your data and code to read it in with the paperclip icon after you read this:
In the meantime, see ismember or join
NCA
NCA 2022 年 7 月 11 日
Thanks for respnding promptly, here is the data in excel attached(Data_to_match) and the labels(GrpLabel_to_match) to match with the corresponding rows.
Thanks a lot for your help

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

採用された回答

Debadipto
Debadipto 2022 年 7 月 11 日
As per my understanding, you have two tables, table Data_to_match (838 by 400) and table GrpLabel_to_match (275 by 2). You want to keep only those rows in Data_to_match whose SampleID is present in GrpLabel_to_match and remove the other rows. To achieve this you can use the following code:
Data_to_match = Data_to_match(contains(Data_to_match.SampleID, GrpLabel_to_match.SampleID), :);
Please note that the dimension of the updated table Data_to_match will not be exactly 275 by 400 if the table GrpLabel_to_match contains any duplicate entries.
  3 件のコメント
Debadipto
Debadipto 2022 年 7 月 12 日
Assuming the two tables have already been converted to cell arrays, you can use the following code to join the two cell arrays:
A = cellstr(GrpLabel_to_match(:,1));
B = cellstr(Data_to_match(:,1));
Data_to_match = Data_to_match(ismember(A, B), :)
NCA
NCA 2022 年 7 月 13 日
Thank You very much Debadipto. Perfect code to solve my problem.

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

タグ

製品


リリース

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by