为了账号安全,请及时绑定邮箱和手机立即绑定

实在是不知道哪里出了问题,求指导!谢谢!

实在是不知道哪里出了问题,求指导!谢谢!

慕后森 2023-03-18 17:13:17
首先贴上我的.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 ==> h1Too many output arguments.} Exception in thread "main" ... Matlab M-code Stack Trace ...com.mathworks.toolbox.javabuilder.MWException: Error using ==> h1Too 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)
查看完整描述

2 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

应该是你引用函数的输出变量超过了,函数所定义的变量个数

查看完整回答
反对 回复 2023-03-21
?
守着一只汪

TA贡献1872条经验 获得超3个赞

在java里调用matlab中的函数(如本例中的h1),需要传递的参数比函数本身的参数要多一个。
所以正确的调用形式应该为h1(1,a,b),第一参数是该函数的输出的个数,后面两个是h1所需的参数

查看完整回答
反对 回复 2023-03-21
  • 2 回答
  • 0 关注
  • 89 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信