如何循环显示两个字符串数组中的不同元素?
How to display the differing elements in two string arrays in a loop?
我有两个字符串数组 - f
和 g
。我希望程序打印 g
中不存在于 f
.
中的成员
我有以下代码:
% <for ... >
% <get `f` and `g` as inputs>
...
x = 0;
y = 0;
while x < a
while y < b
w = string(f);
z = string(g);
tf = strcmp(w,z);
for tf == 0 % < < < < < Help needed with this
fprintf('%s\n',z)
end
y = y+1;
end
x = x+1;
end
% end
我为 tf
得到的结果看起来像 1 0 0
。我想要的是 fprintf
显示对应于 z
中的 0
的条目(显示 w
和 z
的不同成员) ,我该怎么做?
这里有一段小代码展示了如何实现:
y = '12';
x = 'hello 123';
% First, check if the content of y is present in x
temp = contains(x, y);
if temp == 1 % x contains y
disp ('x contains y');
else
disp ('X does not contain y');
end
% Second, replace y characters with nothing.
% Result: Only characters not present in y will remain
% for more information type 'docs strrep'
temp2 = strrep(x,y,'');
disp (['Characters of x not in y: ' temp2])
您将看到:
x contains y
Characters of x not in y:hello 3
一种方法是将 char 数组视为集合,找出集合之间的差异,然后打印缺失的条目。下面是如何在 字符 级别和 单词 级别上执行此操作的演示。
f = 'this is a char array';
g = 'this is a longer char array';
% character-level difference:
d = setdiff(g,f);
disp(d); % output: "eglno"
% word-level difference:
tf = strsplit(f);
tg = strsplit(g);
d = setdiff(tg,tf);
disp(d); % output: "longer"
如果您的输入是 "strings"
而不是 'char arrays'
,只需在开始前将它们包装在 char()
中即可。
另请参阅:setdiff
。
我有两个字符串数组 - f
和 g
。我希望程序打印 g
中不存在于 f
.
我有以下代码:
% <for ... >
% <get `f` and `g` as inputs>
...
x = 0;
y = 0;
while x < a
while y < b
w = string(f);
z = string(g);
tf = strcmp(w,z);
for tf == 0 % < < < < < Help needed with this
fprintf('%s\n',z)
end
y = y+1;
end
x = x+1;
end
% end
我为 tf
得到的结果看起来像 1 0 0
。我想要的是 fprintf
显示对应于 z
中的 0
的条目(显示 w
和 z
的不同成员) ,我该怎么做?
这里有一段小代码展示了如何实现:
y = '12';
x = 'hello 123';
% First, check if the content of y is present in x
temp = contains(x, y);
if temp == 1 % x contains y
disp ('x contains y');
else
disp ('X does not contain y');
end
% Second, replace y characters with nothing.
% Result: Only characters not present in y will remain
% for more information type 'docs strrep'
temp2 = strrep(x,y,'');
disp (['Characters of x not in y: ' temp2])
您将看到:
x contains y
Characters of x not in y:hello 3
一种方法是将 char 数组视为集合,找出集合之间的差异,然后打印缺失的条目。下面是如何在 字符 级别和 单词 级别上执行此操作的演示。
f = 'this is a char array';
g = 'this is a longer char array';
% character-level difference:
d = setdiff(g,f);
disp(d); % output: "eglno"
% word-level difference:
tf = strsplit(f);
tg = strsplit(g);
d = setdiff(tg,tf);
disp(d); % output: "longer"
如果您的输入是 "strings"
而不是 'char arrays'
,只需在开始前将它们包装在 char()
中即可。
另请参阅:setdiff
。