how to compare array with matlab

前端 未结 2 1009
生来不讨喜
生来不讨喜 2021-01-24 16:20

I would like to comapre two arrays of strings how could I affect the following values to a,b,c,d , when I try as below, I go

相关标签:
2条回答
  • 2021-01-24 16:59

    Mistake 1:

    = is the assignment operator.

    The comparison operator is ==.


    Mistake 2:

    MATLAB arrays don't generally hold strings. They hold numbers or single characters.

    >> b = ['a','0','10','20']
    
    b =
    
    a01020
    

    To see why [a,b,c,d] = ['a','0','10','20'] doesn't work, consider this:

    >> [a,b,c,d] = 'a01020'
    ??? Too many output arguments.
    

    You're trying to put six characters into four buckets. Not going to work.

    You might have meant to create a cell array:

    >> c = {'a','0','10','20'}
    
    c = 
    
        'a'    '0'    '10'    '20'
    

    Matlab arrays are numerical matrices, not general-purpose list containers.

    0 讨论(0)
  • Following on from Li-aung's answer, what you probably want is something like

    isequal({a,b,c,d}, {'a', '0', '10', '20'})
    

    This will return true iff a has the value 'a' and so on.

    EDIT

    To perform multiple assignments, you can use DEAL

    [a,b,c,d] = deal('a', '0', '10', '20')
    
    0 讨论(0)
提交回复
热议问题