strcmp help
12 次查看(过去 30 天)
显示 更早的评论
How would i strcmp two character strings with different numbers of rows? Also how can i display what the differences are between the two rows?
3 个评论
Fangjun Jiang
2011-11-1
Then ismember(),intersect() or setdiff() may be useful.
ismember({'a','b'},{'a','c','ab'})
intersect({'a','b'},{'a','c','ab'})
setdiff({'a','b'},{'a','c','ab'})
采纳的回答
Sven
2011-11-1
Like Fangjun said, ismember(),intersect() or setdiff() may be useful.
% Make a cell array of 10 short strings
firstSet = cellstr(char(randi(26,10,4)+96));
% And a second array using some of the first set mixed with other randoms
secondSet = cat(1, firstSet([2,7,9]), cellstr(char(randi(26,10,4)+96)));
% Randomise the order of this second set
secondSet = secondSet(randperm(length(secondSet)));
% Find matches
[firstMatch, firstMatchLocs] = ismember(firstSet,secondSet);
cell2print = cat(1, firstSet(firstMatch)', num2cell([find(firstMatch)'; firstMatchLocs(firstMatch)']));
fprintf('(%s), found at first index %d matches second index %d\n', cell2print{:})
fprintf('The following firstSet entries did not match the secondSet:\n')
cell2print = cat(1, firstSet(~firstMatch)', num2cell(find(~firstMatch)'));
fprintf('(%s) at index %d\n', cell2print{:})
0 个评论
更多回答(1 个)
Walter Roberson
2011-11-1
By definition, a character string only has one row.
If there is more than one row, you have a character array (or column vector.)
If you have two character arrays with the same width and the same number of rows, then
all(A==B,2)
will give you column vector of truth values of whether the rows match each other.
If you have two character arrays with different widths, then some would say that the two are never equal (because at the very least the number of trailing blanks would be different), and some would say that trailing blanks should be ignored (note: strcmp() explicitly includes trailing blanks!)
If you want to ignore trailing blanks and you have the same number of rows, then
cellfun(@isequal, cellstr(A), cellstr(B))
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Characters and Strings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!