MATLAB: Remove not corresponding values in matrix

MATLABmatrixsetdiff

There are 2 matrices, matrix (1) of the dimensions 1374200×18 and matrix (2) larger one with 200000×2. Matrix (1) is a discontinue matrix with in column 1 the time vector. Matrix (2) is a continuous time vector and air pressure. Now i want obtain a vector with only with values of time corresponding to Matrix (1). Is this possible?

Best Answer

first create some dummy data,
mat1 = [1:10;rand(1,10)].'; % matrix with continuous values on column 1
mat2 = [randperm(20,10);rand(1,10)].'; %column 1 with discontinuities
now use ismemeber,
res = mat2(ismember(mat2(:,1),mat1(:,1)),:) %get the data of mat2 where its col1 matches with mat1's column 1.
if you want to remove the other values from mat2,
mat2(~ismember(mat2(:,1),mat1(:,1)),:) = [];