1

我想比较两个字符串数组如何影响以下值到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] 和预期之间进行比较?

4

2 回答 2

2

错误一

=是赋值运算符。

比较运算符是==


错误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 数组是数值矩阵,不是通用列表容器。

于 2012-05-10T12:18:17.973 回答
2

继 Li-aung 的回答之后,您可能想要的是类似

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

这将返回trueiffa具有值'a'等等。

编辑

要执行多个分配,您可以使用 DEAL

[a,b,c,d] = deal('a', '0', '10', '20')
于 2012-05-10T12:26:54.957 回答