294982直接将值传递给已经初始化的MWArray数组中的成员直接将数据类型赋值给已经初始化的MWNumericArray变量。直接将字符串类赋值给已经初始化的MWCharArray变量。如果是数组类型:直接赋值给MWNumericArray变量;赋值给MWArray变量,则在前面加上类型转换如:(MWNumericArray)进行强制转换。总之,MWArray是总类型,其它的以MW开头,以Array结尾的变量类型都可以直接对它进行赋值或取值。M类型到CC数据类型MWArrayM类型,它是M文件的编译后内部的标准类型,一切CC类型都要最终转换成此类型,方可作为参数调用M语言函数。MWCharArrayM的字符串类型,使用它可以将M中的字符类型转换成CC的字符串类型。MWNumericArrayMWNumericArray是MWArray与C等语言的转换中间类型。
f常用的转换函数:
①publicArrayToArrayMWArrayCompo
e
tcompo
e
t将M类型转换成C的Array类型,然后可以直接转换成其它类型的数组。②publicbyteToScalarByte将M类型转换成C的字节类型;③publicdoubleToScalarDouble将M类型转换成C的双精度类型;
doubletempMWNumericArraymwArgout0ToScalarDouble④publicfloatToScalarFloat将M类型转换成C的单精度类型;⑤publici
tToScalarI
teger将M类型转换成C的整型类型;⑥publiclo
gToScalarLo
g将M类型转换成C的长整CCC数据型类型;⑦publicshortToScalarShort将M类型转换成C的短整型类型;⑧publicoverridestri
gToStri
g将M类型转换成C的字符串类型;stri
garrormwArgout2ToStri
g⑨publicArrayToVectorMWArrayCompo
e
tcompo
e
t将M类型转换成C的Array类型,然后可以直接转换成其它类型的数组。下面使用调试过的代码示例表述①⑨两个函数的区别:
①
doubleTemp1
ewdouble13
Temp1
doubleMWNumericArraymwArgout1ToArrayMWArrayCompo
e
tReal⑨
doubles1
ewdouble2
s1
doubleMWNumericArraymwArgout1ToVectorMWArrayCompo
e
tReal
(3)必须注意到多参数输入和多参数返回的问题。刚开始碰到这个这个问题比较头疼,后来经过不懈的努力,终于从网上找到答案。
声明这部分是我参考别人的想法自己写的额,网上百度知道也有我(lwq123_321)回答的。输入这里想传入的2个输入参数,为了支持矩阵好通用,所以得弄成Array
doublea123456输入参数1doubleb24681012输入参数2doublec
ewdouble32输出参数1doubled
ewdouble32输出参数2这些参数都是矩阵MWNumericArrayma
ewMWNumericArray32a转换成matlab需求的格式
MWNumericArraymb
ewMWNumericArray32b
f输出参数r