打印

C#

[复制链接]
802|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fcs123|  楼主 | 2018-9-9 17:46 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
C#, ST, TE, TI, TEST
本帖最后由 fcs123 于 2018-9-9 17:47 编辑

using test13;    // test13 为MATLAB画图
test13.test1313class test13 = new test13.test1313class();  

try
          {               
           if (modelFlag)
                                   {
                                        MWNumericArray x = null;
                                        Xlength1 = (double.Parse(textBox1_fenbian.Text));
                                        x = new MWNumericArray(Xlength1);
                                        test13.test13(x);
                                  }
                                   break;         
           }
catch  (Exception eee)
{
                            MessageBox.Show("选择绘图数据有误!\n请检查后重新选择!");
                            var strr =(eee.ToString());
}
strr 报错如下:
System.ArgumentNullException: 值不能为空。
参数名: source    (我代码里有没有它啊)
   在 System.Runtime.InteropServices.Marshal.CopyToManaged(IntPtr source, Object destination, Int32 startIndex, Int32 length)
   在 MathWorks.MATLAB.NET.Utility.MWMCR.EvaluateFunction(String functionName, Int32 numArgsOut, Int32 numArgsIn, MWArray[] argsIn)
   在 MathWorks.MATLAB.NET.Utility.MWMCR.EvaluateFunction(String functionName, MWArray[] argsIn)
   在 test13.test1313class.test13(MWArray x)

请问大哥们怎么解决,小弟不胜感激

相关帖子

沙发
linqing171| | 2018-9-9 21:35 | 只看该作者
调试,异常,把那几个√都选择上。
再运行,说一下是哪行报的错。

从下面来看,应该是这个 test13.test13(x);
那么x内容为空。或者x的格式错误,比如mathlab要传两个参数,第一个参数是数组,第二个参数也是数组,这两个参数组成个数组;而你传了一个数组,数组的内容不是两个数组,而是两个值;

使用特权

评论回复
板凳
fcs123|  楼主 | 2018-9-15 10:02 | 只看该作者
linqing171 发表于 2018-9-9 21:35
调试,异常,把那几个√都选择上。
再运行,说一下是哪行报的错。

改了一下:                           int xz = 0;
                                             int xzz = 0;
                                             if (!string.IsNullOrEmpty(textBox1_fenbian.Text))
                                             {
                                                 Xlength1 = (double.Parse(textBox1_fenbian.Text));
                                            //    x = new MWNumericArray(Xlength1);
                                                 xzz = (int)( Xlength1);
                                                 xz = xzz;
                                                 test13.test13(xz);
C:\Users\Administrator\Desktop
就是执行完test13.test13(xz);它就会调到catch中,然后显示选择绘图数据有误

qq.png (8.97 KB )

qq.png

使用特权

评论回复
评论
fcs123 2018-9-15 15:53 回复TA
https://wenku.baidu.com/view/fc23ef2aaf45b307e8719752.html 是.m文件的函数声明类型有个输出,C#上没有,所以没对接上 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

6

帖子

0

粉丝