keep the same row data from two matrix

i have a total data matrix a(253*2), now i just want to keep the data from b(223*1) and get the whole data is c(223*2), which means that keep the same data between a&b. how should i do?

3 个评论

hello
you mean c would be the first 223 rows of a ?
then this is it :
c = a(1:223,:);
of course not, first need to find the data in the first row in the b and also in the first row in a, then output the c
OK so you have to use find the get the similar values from col 1 in a and b
ind = find(a(:,1) == b);
c = a(ind,:);

请先登录,再进行评论。

回答(1 个)

This is a job for intersect or ismember.
[~, ia, ib] = intersect(a(:, 1), b);
c = [b(ib), a(ia, 2)]

2 个评论

actually it still doesn't work because it tell me a and b are not contain same variable. i upload the data the matrix a is on the sheet1 and matrix b is on the sheet2.
Thanks so much!
I cannot follow you. The tables do share at least some common data. So my code is expected to work. If it does not work for you, please post your code.

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Matrices and Arrays 的更多信息

评论:

Jan
2021-3-25

Community Treasure Hunt

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

Start Hunting!

Translated by