Add size function

This commit is contained in:
kradchen
2023-05-11 13:49:58 +08:00
parent cbbcca5ceb
commit 55417a0efa
2 changed files with 30 additions and 0 deletions

View File

@@ -88,3 +88,32 @@ Matrix Aurora::zeros(int aRow, int aColumn, int aSlice) {
Matrix Aurora::zeros(int aSquareRow) {
return Aurora::zeros(aSquareRow, aSquareRow);
}
Matrix Aurora::size(const Matrix &aMatrix)
{
if (aMatrix.isScalar()){
double * output = Aurora::malloc(1);
output[0]=1;
return Matrix::New(output,1,1,1);
}
else if (aMatrix.isVector()){
double * output = Aurora::malloc(1);
output[0]=aMatrix.getDataSize();
return Matrix::New(output,1,1,1);
}
//3D
else if (aMatrix.getDimSize(2)>1){
double * output = Aurora::malloc(3);
output[0]=aMatrix.getDimSize(0);
output[1]=aMatrix.getDimSize(1);
output[2]=aMatrix.getDimSize(2);
return Matrix::New(output,3,1,1);
}
//2D matrix
else{
double * output = Aurora::malloc(2);
output[0]=aMatrix.getDimSize(0);
output[1]=aMatrix.getDimSize(1);
return Matrix::New(output,2,1,1);
}
}

View File

@@ -41,6 +41,7 @@ namespace Aurora {
Matrix interp3(const Matrix& aX, const Matrix& aY, const Matrix& aZ, const Matrix& aV, const Matrix& aX1, const Matrix& aY1, const Matrix& aZ1,InterpnMethod aMethod);
Matrix interpn(const Matrix& aX, const Matrix& aY, const Matrix& aZ, const Matrix& aV, const Matrix& aX1, const Matrix& aY1, const Matrix& aZ1,InterpnMethod aMethod);
Matrix size(const Matrix &aMatrix);
};