我想比较两个字符串数组如何影响以下值到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] 和预期之间进行比较?
错误一:
=
是赋值运算符。
比较运算符是==
。
错误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 数组是数值矩阵,不是通用列表容器。
继 Li-aung 的回答之后,您可能想要的是类似
isequal({a,b,c,d}, {'a', '0', '10', '20'})
这将返回true
iffa
具有值'a'
等等。
编辑
要执行多个分配,您可以使用 DEAL
[a,b,c,d] = deal('a', '0', '10', '20')