如何将数组与matlab进行比较

时间:2012-05-10 12:15:18

标签: arrays matlab

我想comapre两个字符串数组 我如何影响abcd的以下值,当我尝试如下时,我收到了错误

[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 个答案:

答案 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')