Checking if all strings exist in row of array
9 次查看(过去 30 天)
显示 更早的评论
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
0 个评论
回答(1 个)
Stephen23
2018-7-1
编辑:Stephen23
2018-7-1
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 个评论
Jan
2018-7-9
@Austin Welch: Posting inputs with a different data type does not simplify the problem, but leads to wrong solutions.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Shifting and Sorting Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!