Matlab 如何将单元格数组1x1中的相同字符值与If-Else语句进行比较

Matlab 如何将单元格数组1x1中的相同字符值与If-Else语句进行比较,matlab,if-statement,Matlab,If Statement,首先,我进行连接并为表、列、行指定名称 conn = database('db', 'user', 'pass'); 然后我在数据库中为select查询一个Varchar curs = exec(conn, 'select row/column from table'); 我要求提供数据 curs = fetch(curs); AA = curs.Data; 然后我的问题开始了。。。我将添加一个名为“Alex”的变量,以便在数据库中找到与指定列相同的名称,并使用if语句验证其存在性 var

首先,我进行连接并为表、列、行指定名称

conn = database('db', 'user', 'pass');
然后我在数据库中为select查询一个Varchar

curs = exec(conn, 'select row/column from table');
我要求提供数据

curs = fetch(curs);
AA = curs.Data;
然后我的问题开始了。。。我将添加一个名为“Alex”的变量,以便在数据库中找到与指定列相同的名称,并使用if语句验证其存在性

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

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

我对if语句的结构如下:

if AA == var

  msgbox('Data Exist')

end

这对我不起作用,我只收到“未定义的函数'eq'用于'cell'类型的输入参数”。

因此,我假设您有如下内容:

var = 'Alex';
AA = {'Alex'};
现在,您可以通过几种方式处理此问题,我最喜欢的方式是:

isequal(var, AA{:})
这里的关键点是提取单元格内容的
{:}


如果var==AA{:}
也可以,但只有当
var
AA{1}
的长度相同时,否则会导致错误。因此,我不建议对字符串使用
=

如果
AA
保证是1x1单元阵列
strcmp(var,AA{1})
isequal({var},AA)
应该可以工作。但是,如果它可以有更多的元素,您可以使用
ismember(var,AA)

错误消息告诉您,当至少一个输入为单元格时,
==
(相等运算符)不存在,如本例中的
AA
。如果您希望
AA
中的所有元素都是字符串(字符数组),那么您可以迭代
AA
的每个元素,并与
var
进行比较。或者,您的另外两个选项中的一个可能也会起作用。如果您确实想对字符串使用
=
,您应该考虑使用
尝试…您的代码…[\n]catch exception[\n]end
,这将使您的代码保持运行,并且只会告诉您出错。
isequal(var, AA{:})