How does one use a string vector to select rows from a table. The vector length and the table height are unequal
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
George
el 14 de Ag. de 2023
Editada: Daniel Bengtson
el 15 de Ag. de 2023
The elements of vector (X) correspond to the 1st column of the table (T).
lenght(X) << height(T)
I want to use X to extract the corresponding rows the table
Note that the vector elements are unique e.g. X = ["AGAP004746", "AGAP004753", "AGAP004756"]
Some of the rows are shown below. The elements of T(:, 1) are not unique.
AGAP004746 CPIJ018891-PA 1:1 1082603
AGAP004747 CPIJ011183-PA 1:1 1002379
AGAP004749 CPIJ006245-PA 1:1 1102192
AGAP004750 CPIJ002918-PA 1:1 689782
AGAP004752 CPIJ009694-PA 1:1 1177233
AGAP004753 CPIJ001266-PA 1:m 788759
AGAP004753 CPIJ011603-PA 1:m NA
AGAP004754 CPIJ002923-PA 1:1 1170952
AGAP004755 CPIJ002926-PA 1:1 NA
AGAP004756 CPIJ002925-PA 1:m 1082201
AGAP004756 CPIJ011812-PA 1:m NA
The expected output should be Table T1 below
AGAP004746 CPIJ018891-PA 1:1 1082603
AGAP004753 CPIJ001266-PA 1:m 788759
AGAP004753 CPIJ011603-PA 1:m NA
AGAP004756 CPIJ002925-PA 1:m 1082201
AGAP004756 CPIJ011812-PA 1:m NA
0 comentarios
Respuesta aceptada
Voss
el 14 de Ag. de 2023
X = ["AGAP004746", "AGAP004753", "AGAP004756"];
idx = ismember(T{:,1},X);
T1 = T(idx,:);
0 comentarios
Más respuestas (1)
Daniel Bengtson
el 14 de Ag. de 2023
Editada: Daniel Bengtson
el 15 de Ag. de 2023
T = %your table
X = {"AGAP004746", "AGAP004753", "AGAP004756"};
T1 = T(cell2mat(cellfun(@(x) any(strcmp(x,X)),T{:,1},'UniformOutput',false)),:);
2 comentarios
Daniel Bengtson
el 15 de Ag. de 2023
Good catch on the t -> T mistake, but x is just a function handle and would have been fine. I stole that line from something else that I was working on and was sloppy with variables. Edited for correction.
Ver también
Categorías
Más información sobre Characters and Strings en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!