如何比较单元格数组1x1中的相同字符值与If Else Sentence

时间:2014-06-02 01:19:09

标签: matlab if-statement

首先,我建立连接并为表,列,行分配名称......

conn = database('db', 'user', 'pass');

然后我进行查询,在数据库中选择一个Varchar

curs = exec(conn, 'select row/column from table');

我请求数据

curs = fetch(curs);
AA = curs.Data;

然后我的问题开始......我将添加一个名为' Alex'的变量,在我的数据库中找到与指定列相同的名称,并使用if语句验证他们的存在..

var = 'Alex';

然后我想知道检索数据并在数据库和我的变量之间进行比较的最佳选择是什么:

index = find(strcmp(AA,var));

data = strfind(AA,var);

我的if语句的结构是这样的:

if AA == var

  msgbox('Data Exist')

end

这对我不起作用,我只是收到"未定义的功能' eq'输入参数类型为' cell'。"

2 个答案:

答案 0 :(得分:1)

所以,我假设你有类似的东西:

var = 'Alex';
AA = {'Alex'};

现在,您可以通过多种方式处理此问题,我最喜欢的是:

isequal(var, AA{:})

这里的关键点是提取单元格内容的{:}

if var == AA{:}也可以,但只有varAA{1}长度相同,否则会导致错误。因此,我不建议将==用于字符串。

答案 1 :(得分:0)

如果AA保证是1x1单元格数组strcmp(var, AA{1})isequal({var}, AA)应该有效。但是,如果它可以包含更多元素,则可以使用ismember(var, AA)