从matlab动态调用mysql过程
我在for循环中调用一个mysql存储过程,其中包含来自matlab的两个整数输入参数,并得到错误。matlab代码为:从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);
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),')'];