当前位置: 首页>>代码示例>>C++>>正文


C++ WolframLibraryData::MTensor_getDimensions方法代码示例

本文整理汇总了C++中WolframLibraryData::MTensor_getDimensions方法的典型用法代码示例。如果您正苦于以下问题:C++ WolframLibraryData::MTensor_getDimensions方法的具体用法?C++ WolframLibraryData::MTensor_getDimensions怎么用?C++ WolframLibraryData::MTensor_getDimensions使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在WolframLibraryData的用法示例。


在下文中一共展示了WolframLibraryData::MTensor_getDimensions方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: demo_T_T

/**
 * Constructs a copy of the input tensor with the number of elements,
 * rank, and type appended at the end.
 **/
DLLEXPORT int demo_T_T(WolframLibraryData libData, mint Argc, MArgument *Args, MArgument Res) {
	MTensor T_arg, T_res;
	mint i, rank, type, num, len;
	mint const* dims;
	mint* intData;
	mint* intDataNew;
	mreal* realData;
	mreal* realDataNew;
	int err = LIBRARY_NO_ERROR;
	
	T_arg = MArgument_getMTensor(Args[0]);


	rank = libData->MTensor_getRank(T_arg);
	type = libData->MTensor_getType(T_arg);
	dims = libData->MTensor_getDimensions(T_arg);
	num =  libData->MTensor_getFlattenedLength(T_arg);

	/*
	The result is going to have all the elements, also 
	the length of each dimension, number of elems, rank and type.
	*/
	len = num + rank + 3;

	err = libData->MTensor_new(type, 1, &len, &T_res);
	if (err) return err;

	
	if ( type == MType_Integer) {
		intData = libData->MTensor_getIntegerData(T_arg);
		intDataNew = libData->MTensor_getIntegerData(T_res);
		for ( i = 0; i < num; i++) {
			intDataNew[i] = intData[i];
		}
		for ( i = 0; i < rank; i++) {
			intDataNew[i+num] = dims[i];
		}
		intDataNew[num+rank] = num;
		intDataNew[num+rank+1] = rank;
		intDataNew[num+rank+2] = type;
	}
	else if ( type == MType_Real) {
		realData = libData->MTensor_getRealData(T_arg);
		realDataNew = libData->MTensor_getRealData(T_res);
		for ( i = 0; i < num; i++) {
			realDataNew[i] = realData[i];
		}
		for ( i = 0; i < rank; i++) {
			realDataNew[i+num] = dims[i];
		}
		realDataNew[num+rank] = num;
		realDataNew[num+rank+1] = rank;
		realDataNew[num+rank+2] = type;
	}	
	MArgument_setMTensor(Res, T_res);
	return LIBRARY_NO_ERROR;
}
开发者ID:qzmfranklin,项目名称:test,代码行数:61,代码来源:demo.c

示例2: arraySize

mint arraySize(WolframLibraryData libData, MTensor tensor)
    {
    mint const* dims = libData->MTensor_getDimensions(tensor);
    return dims[0];
    }
开发者ID:rgatkinson,项目名称:PCRModelling,代码行数:5,代码来源:odeSkeleton.cpp


注:本文中的WolframLibraryData::MTensor_getDimensions方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。