Matlab 如何基于第二个矩阵(子矩阵)的列值从父矩阵中提取行
我有两个矩阵:父矩阵(19564 X 5)和子矩阵(3913 X 3)(父矩阵的子矩阵)。子矩阵中的3列和父矩阵中的前3列是x、y和z坐标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) 您需要使用行标志匹
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列,然后询问获取所有列。我错过了。谢谢你指出。