什么是Matlab相当于Python的`not in`?

Cia*_*lsh 6 python matlab

在Python中,可以获得lst1使用独有的元素:

lst1=['a','b','c']
lst2=['c','d','e']
lst3=[]
for i in lst1:
    if i not in lst2:
        lst3.append(i)
Run Code Online (Sandbox Code Playgroud)

什么是Matlab等价物?

Div*_*kar 14

您正在寻找MATLAB的setdiff-

setdiff(lst1,lst2)
Run Code Online (Sandbox Code Playgroud)

样品运行 -

>> lst1={'a','b','c'};
>> lst2={'c','d','e'};
>> setdiff(lst1,lst2)
ans = 
    'a'    'b'
Run Code Online (Sandbox Code Playgroud)

用Python运行验证 -

In [161]: lst1=['a','b','c']
     ...: lst2=['c','d','e']
     ...: lst3=[]
     ...: for i in lst1:
     ...:     if i not in lst2:
     ...:         lst3.append(i)
     ...:         

In [162]: lst3
Out[162]: ['a', 'b']
Run Code Online (Sandbox Code Playgroud)

事实上,你setdiff在Python NumPy module中也是如此numpy.setdiff1d.与它等效的实现将是 -

In [166]: import numpy as np

In [167]: np.setdiff1d(lst1,lst2) # Output as an array
Out[167]: 
array(['a', 'b'], 
      dtype='|S1')

In [168]: np.setdiff1d(lst1,lst2).tolist() # Output as list
Out[168]: ['a', 'b']
Run Code Online (Sandbox Code Playgroud)