未定义与 'double' 类型的输入参数相对应的函数 'indices'。 conn = database('','root','root','com.mysql.cj.jdbc.Driver','jdbc:mysql://localhost:3306/pca?serverTimezone=CST&useSSL=false'); app.mouse_ind = indices(1); %鼠标选择行 app.mouse_ind2 = indices(2); %鼠标选择列 curs = exec(conn,'delete from user where ID = ''5''') whereclause=strcat('where no= ',title_v); update(conn,app.tablename,{'name'},answer, whereclause);
时间: 2023-11-23 11:06:50 浏览: 66
这个错误提示是因为你在代码中使用了一个名为 "indices" 的函数,但是该函数并没有被定义。从代码的语境来看,我猜测你可能想要使用 MATLAB 自带的函数 "ind2sub" 来获取鼠标选择的行和列的索引值。你可以尝试将下面这行代码:
```
app.mouse_ind = indices(1);
```
替换为:
```
[app.mouse_ind, app.mouse_ind2] = ind2sub(size(your_array), hObject.Parent.CurrentPoint(1,1:2));
```
其中,"your_array" 表示你用于显示的数组,"hObject" 表示当前的图形句柄。这样,就可以获取鼠标选择的行和列的索引值了。
另外,你的代码中还有一些语法错误。你需要在执行 "exec" 函数时添加分号,以避免在命令行中输出结果。同时,应该使用 "curs = fetch(exec(conn, ...))" 来获取查询结果。最后,"whereclause" 应该是一个字符串,而不是一个字符数组。你可以尝试将下面这行代码:
```
curs = exec(conn,'delete from user where ID = ''5''')
whereclause=strcat('where no= ',title_v);
update(conn,app.tablename,{'name'},answer, whereclause);
```
替换为:
```
exec(conn, sprintf('DELETE FROM user WHERE ID = ''%d''', 5));
whereclause = sprintf('WHERE no = %s', title_v);
data = {answer};
colnames = {'name'};
update(conn, app.tablename, colnames, data, whereclause);
```
阅读全文