110,538
社区成员
发帖
与我相关
我的任务
分享
Matrix2D^ Matrix2DCalculator::SubMatrix(Matrix2D^ matrix,int row,int column,int rows,int columns){
int lie = matrix->Columns;
Matrix2D^ a = gcnew Matrix2D(rows,columns,0);
for(int i =row; i<rows+row; i++){
for(int j = column; j<columns+column; j++){
a->Elements[(i-row)*columns+(j-column)] = matrix->Elements[i*lie+j];
}
}
return a;
}
generic <typename T> where T : value class
static T Read(array<Byte>^ data)
{
T value;
pin_ptr<System::Byte> src = &data[0];
pin_ptr<T> dst = &value;
memcpy((void*)dst, (void*)src,
/*System::Runtime::InteropServices::Marshal::SizeOf(T::typeid)*/
sizeof(T));
return value;
}
#include <memory.h>
Matrix2D^ SubMatrix2(Matrix2D^ matrix,int row,int column,int rows,int columns){
int lie = matrix->Columns;
Matrix2D^ a = gcnew Matrix2D(rows,columns,0);
double * p = a->Elements;
double * p1 = &(matrix->Elements[row*lie+column]);
double * p2 = p1;
for(int i =0; i<rows; i++){
memcpy(p,p1,sizeof(double)*columns);
p = p + columns;
p1 = p2 + lie;
p2 = p1;
}
return a;
}