我想comapre两个字符串数组
我如何影响a
,b
,c
,d
的以下值,当我尝试如下时,我收到了错误
[a,b,c,d] = getVal(x);
=>this will gives :
a =
a
b=
0
c =
10
d =
[]
我有:
expected = {'a','0','10',[]};
如何在[a,b,c,d]和预期之间进行比较?
答案 0 :(得分:2)
错误1 :
=
是赋值运算符。
比较运算符为==
。
错误2 :
MATLAB数组通常不包含字符串。他们持有数字或单个字符。
>> b = ['a','0','10','20']
b =
a01020
要了解[a,b,c,d] = ['a','0','10','20']
无效的原因,请考虑以下事项:
>> [a,b,c,d] = 'a01020'
??? Too many output arguments.
你试图将六个字符放入四个桶中。不会工作。
您可能打算创建一个单元格数组:
>> c = {'a','0','10','20'}
c =
'a' '0' '10' '20'
Matlab数组是数字矩阵,而不是通用列表容器。
答案 1 :(得分:2)
继Li-aung的回答后,您可能想要的是
isequal({a,b,c,d}, {'a', '0', '10', '20'})
如果true
的值为a
,则会返回'a'
,依此类推。
修改
要执行多个分配,您可以使用DEAL
[a,b,c,d] = deal('a', '0', '10', '20')