查看单个帖子
旧 2019-12-10, 16:49   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 如何将Java对象作为参数传递给MATLAB函数?

我编写了一个Matlab类,以使用JDBC和java.sql中的内容实现数据库。

我需要知道ResultSet中有多少个结果,因此我编写了以下Matlab静态函数:

methods (Static) function [numRecords] = numRecords(resultSet) numRecords = 0; if (~isempty(resultSet)) row = resultSet.getRow(); resultSet.beforeFirst(); resultSet.last(); numRecords = resultSet.getRow(); resultSet.absolute(row); end end end 但是当我尝试调用它时,出现以下错误消息:

???类型为“ org.apache.derby.impl.jdbc.EmbedResultSet40”的输入参数的未定义函数或方法“ numRecords”

没有其他函数称为numRecords。


回答:
当我写原始问题时,我意识到自己的错误。

显然,在Matlab类中,调用静态函数需要将封闭的类添加到该函数的前面...即使在同一类中调用也是如此!

我替换了该行:

trials = zeros(numRecords(rs)); 与

trials = zeros(CMAPSigSimResultsDB.numRecords(rs)); 而且有效。 (虽然没有,但是至少调用了该函数。)

这是一个令人困惑的错误消息,因为不应输入Matlab,但听起来像是...



更多&回答...
poster 当前离线   回复时引用此帖