在java中调用Matlab的程序,出现了如下的错误,求指导! 20
首先贴上我的.m文件,很简单:functiony=h1(a,b)y=a+b;end使用的matlab版本是R2010b,前序的步骤基本上都验证没有错,然后贴上我的java...
首先贴上我的.m文件,很简单:
function y=h1(a,b)
y = a+b;
end
使用的matlab版本是R2010b,前序的步骤基本上都验证没有错,然后贴上我的java程序代码,也很简单:
package com.test;
import com.mathworks.toolbox.javabuilder.MWException;
import flying.fly;
public class test {
public static void main(String[] args) throws MWException{
System.out.println("test begin!");
fly f = new fly();
System.out.println("test result is:"+f.h1(3,6));
}
}
但是运行之后就出现了如下的错误:
test begin!
{??? Error using ==> h1
Too many output arguments.
}
Exception in thread "main" ... Matlab M-code Stack Trace ...
com.mathworks.toolbox.javabuilder.MWException: Error using ==> h1
Too many output arguments.
at com.mathworks.toolbox.javabuilder.internal.MWMCR.mclFeval(Native Method)
at com.mathworks.toolbox.javabuilder.internal.MWMCR.access$600(MWMCR.java:23)
at com.mathworks.toolbox.javabuilder.internal.MWMCR$6.mclFeval(MWMCR.java:902)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.mathworks.toolbox.javabuilder.internal.MWMCR$5.invoke(MWMCR.java:800)
at $Proxy0.mclFeval(Unknown Source)
at com.mathworks.toolbox.javabuilder.internal.MWMCR.invoke(MWMCR.java:475)
at flying.fly.h1(fly.java:196)
at com.test.test.main(test.java:11)
实在是不知道哪里出了问题,求指导!谢谢! 展开
function y=h1(a,b)
y = a+b;
end
使用的matlab版本是R2010b,前序的步骤基本上都验证没有错,然后贴上我的java程序代码,也很简单:
package com.test;
import com.mathworks.toolbox.javabuilder.MWException;
import flying.fly;
public class test {
public static void main(String[] args) throws MWException{
System.out.println("test begin!");
fly f = new fly();
System.out.println("test result is:"+f.h1(3,6));
}
}
但是运行之后就出现了如下的错误:
test begin!
{??? Error using ==> h1
Too many output arguments.
}
Exception in thread "main" ... Matlab M-code Stack Trace ...
com.mathworks.toolbox.javabuilder.MWException: Error using ==> h1
Too many output arguments.
at com.mathworks.toolbox.javabuilder.internal.MWMCR.mclFeval(Native Method)
at com.mathworks.toolbox.javabuilder.internal.MWMCR.access$600(MWMCR.java:23)
at com.mathworks.toolbox.javabuilder.internal.MWMCR$6.mclFeval(MWMCR.java:902)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.mathworks.toolbox.javabuilder.internal.MWMCR$5.invoke(MWMCR.java:800)
at $Proxy0.mclFeval(Unknown Source)
at com.mathworks.toolbox.javabuilder.internal.MWMCR.invoke(MWMCR.java:475)
at flying.fly.h1(fly.java:196)
at com.test.test.main(test.java:11)
实在是不知道哪里出了问题,求指导!谢谢! 展开
4个回答
展开全部
在java里调用matlab中的函数(如本例中的h1),需要传递的参数比函数本身的参数要多一个。
所以正确的调用形式应该为h1(1,a,b),第一参数是该函数的输出的个数,后面两个是h1所需的参数
所以正确的调用形式应该为h1(1,a,b),第一参数是该函数的输出的个数,后面两个是h1所需的参数
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是你引用函数的输出变量超过了,函数所定义的变量个数
追问
我在程序中引用的输出变量就一个吧,还是有点不太明白,求详细指导~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好问题解决了吗?我也遇到同样问题不知道怎么解决;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
介个。。。帮不到你了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |