Matlab 如何基于第二个矩阵(子矩阵)的列值从父矩阵中提取行

Matlab 如何基于第二个矩阵(子矩阵)的列值从父矩阵中提取行,matlab,matrix,Matlab,Matrix,我有两个矩阵:父矩阵(19564 X 5)和子矩阵(3913 X 3)(父矩阵的子矩阵)。子矩阵中的3列和父矩阵中的前3列是x、y和z坐标 Parent= [x,y,z,A,B] Child= [x,y,z] 我需要从对应于子矩阵中x,y,z坐标的父矩阵中提取第4列和第5列(A和B) 我尝试在MATLAB中使用ismember函数,但它执行逐列搜索,没有得到所需的输出 作为输出,我需要一个3913 X 5的矩阵,其前3个列与子矩阵完全相同,然后从父矩阵中增加2个列(a和B) 您需要使用行标志匹

我有两个矩阵:父矩阵(19564 X 5)和子矩阵(3913 X 3)(父矩阵的子矩阵)。子矩阵中的3列和父矩阵中的前3列是x、y和z坐标

Parent= [x,y,z,A,B]
Child= [x,y,z]
我需要从对应于子矩阵中x,y,z坐标的父矩阵中提取第4列和第5列(A和B)

我尝试在
MATLAB
中使用
ismember
函数,但它执行逐列搜索,没有得到所需的输出

作为输出,我需要一个3913 X 5的矩阵,其前3个列与子矩阵完全相同,然后从父矩阵中增加2个列(a和B)

您需要使用
标志匹配两个矩阵中的xyz坐标,然后使用其结果从
父矩阵
中提取所需行

out = Parent(ismember(Parent(:,1:3), Child, 'rows'), :);

我认为您需要将
[4 5]
更改为
,因为需要3913x5矩阵。我知道它表示列。使用
[4 5]
out
将是一个3913x2矩阵,而OP要求使用3913x5矩阵。除非您要将
out
附加到
Child
。(但目前代码中没有出现这种情况)@ViG你是对的。OP首先询问提取第4列和第5列,然后询问获取所有列。我错过了。谢谢你指出。