从matlab动态调用mysql过程

从matlab动态调用mysql过程,mysql,matlab,Mysql,Matlab,我在for循环中调用一个mysql存储过程,其中包含来自matlab的两个整数输入参数,并得到错误。matlab代码为: conn = database('mysqltestconn','root','4266'); for i = 1:7 for j=1:7 if i~=j sqlquery = 'call reguexp(''i'',''j'')'; cursor = fetch(conn,sqlquery);

我在for循环中调用一个mysql存储过程,其中包含来自matlab的两个整数输入参数,并得到错误。matlab代码为:

conn = database('mysqltestconn','root','4266');
for i = 1:7
    for j=1:7
        if i~=j
            sqlquery = 'call reguexp(''i'',''j'')';
            cursor = fetch(conn,sqlquery);
        end
    end
end

存储过程的名称为“reguexp”,必须输入参数。请帮帮我

我不喜欢MySQL查询,但看起来您希望在正则表达式中传递I和j的值。如果是,则应使用num2str(i)将整数值转换为字符串:

您可以通过使用disp()在每次迭代中打印字符串来检查字符串 (顺便说一句,也可以避免嵌套循环,并用矢量化方法替换它-看起来更像MATLABish:)

干杯,
Eli

感谢您的帮助,我想传递整数而不是字符串,例如,当i=1和j开始迭代时,首先它应该告诉mysql输入(1,2),然后(1,3),(1,4),…(1,7)然后(2,1),(2,3),(2,4),…(2,7)然后(3,1),(3,2),…\hi,这是使用num2str()完成的…它将整型变量i和j的值转换为字符串。例如,如果i=1和j=2,那么您的字符串看起来像“call reguexp(1,2)”。然后将该字符串传递到mysql,在那里对其进行计算。fetch()无法将整数作为表达式参数的输入处理:非常感谢,您完全正确。我尝试了这个解决方案,现在它可以工作了。:)
sqlquery = ['call reguexp(',num2str(i),',',num2str(j),')'];