64,676
社区成员
发帖
与我相关
我的任务
分享
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;
}
#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;
}
for(int j = column; j<columns+column; j++)
{
a->Elements[(i-row)*columns+(j-column)] = matrix->Elements[i*lie+j];
}
Matrix2D^ Matrix2DCalculator::SubMatrix(Matrix2D^ matrix,int row,int column,int rows,int columns){
int lie = matrix->Columns,i,j,k,p,q;
Matrix2D^ a = gcnew Matrix2D(rows,columns,0);
p=0;
q=row*lie;
for(i =0; i<rows; i++){
for(j = column,k=0; j<columns+column; j++,k++){
a->Elements[p+k] = matrix->Elements[q+j];
}
p+=columns;
q+=lie;
}
return a;
}