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
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.
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')