问题描述
最近用MATLAB写了个小程序,返回值是一个1*14的矩阵,然后把这个程序编译成了dll文件添加在了VB.NET的工程中,但是在VS2010中调用该dll的函数返回数组时,发现没法读取数组中具体的元素,总提示索引超出了界限,经调试发现是维度"0"的索引"-1"超出范围。我知道VB.NET和MATLAB中对数组下标的定义不同,但是不知道要如何才能解决碰到的这个错误,如果有那位高手能告知一二,不甚感激。这是VB.NET程序及报错:这是数组的具体返回值情况:这是错误的具体情况:这是MATLAB的源程序:
解决方案
解决方案二:
数组从1开始。试试
解决方案三:
MsgBoxLBound(ErrorFlag,1)输出多少?LBound取得最低下标。
解决方案四:
来拿分了!!!第6行,第12行nothing你还返回个毛0,0啊?不越界才怪.
解决方案五:
世界真奇妙啊。看"具体返回值",ErrorFlag已经有值了,并且是个二维数组;看"MATLAB的源程序",也是一个2X14的数组。如果"具体返回值情况"的那张图片是VB.net的运行时候的调试状况的话,那么在那个时候使用ErrorFlag(0,0)就不应该越界啊。
时间: 2025-01-29 18:47:03