Borrar filtros
Borrar filtros

Checking if all strings exist in row of array

14 visualizaciones (últimos 30 días)
Austin Welch
Austin Welch el 1 de Jul. de 2018
Comentada: Jan el 9 de Jul. de 2018
So I have an array that has rows of strings(A) and I want to check if another user inputted array of strings(B) is contained in each row of (A). I believe I have it so that it will be true if at least one of the strings in array B is present, but I want them all to have to be present. I put an example below of what I am doing now in a shorter version and it is using numbers instead of strings so I know contains is not for numbers, but I just was trying to be quick. Thanks for your help!
v = [5 4 3 2 1; 4 3 2 6 6; 8 5 0 9 6];
f = input('please input nums to test'); % say it repeats
%and you input an array like [2 6 4]
for i = 1:3
% I want 2, 6, and 4 for to all have to be be in the row for it
% to be true not just one.
if contains(v(i), f) == 1
%Do something
end
end

Respuestas (1)

Stephen23
Stephen23 el 1 de Jul. de 2018
Editada: Stephen23 el 1 de Jul. de 2018
You could use ismember and all:
mat = [5 4 3 2 1; 4 3 2 6 6; 8 5 0 9 6];
str = input('Please enter numbers to test: ','s');
vec = sscanf(str,'%f',[1,Inf]);
for k = 1:size(mat,1)
if all(ismember(vec,mat(k,:)))
...
end
end
  3 comentarios
Stephen23
Stephen23 el 1 de Jul. de 2018
ismember also works with string arrays. Please show the code that you tried.
Jan
Jan el 9 de Jul. de 2018
@Austin Welch: Posting inputs with a different data type does not simplify the problem, but leads to wrong solutions.

Iniciar sesión para comentar.

Categorías

Más información sobre Matrices and Arrays en Help Center y File Exchange.

Productos


Versión

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by