PETSc has its own binary format, which is not the same as MATLAB's. 

However, PETSc includes some MATLAB/Octave scripts which will load these binary 
files.

See $PETSC_DIR/share/matlab/PetscBinaryRead.m - there are some examples in the 
comments at the top of that file.

Note that you will probably want to add $PETSC_DIR/share/matlab to your MATLAB 
path so that you can run the script. This is what I have for Octave, but I'm 
not sure if it this, precisely, works in MATLAB:

$ cat ~/.octaverc
PETSC_DIR=getenv('PETSC_DIR');
if length(PETSC_DIR)==0
  PETSC_DIR='~/code/petsc'
end
addpath([PETSC_DIR,'/share/petsc/matlab'])

(As an aside, note that there are also scripts included to load PETSc binary 
files to use with numpy/scipy in  Python, e.g. 
$PETSC_DIR/lib/petsc/bin/PetscBinaryIO.py)

> Am 29.11.2019 um 04:07 schrieb baikadi pranay <[email protected]>:
> 
> Hello PETSc users, 
> 
> I have a sparse matrix built and I want to output the matrix for viewing in 
> matlab. However i'm having difficulty outputting the matrix. I am writing my 
> program in Fortran90 and I've included the following lines to output the 
> matrix.
> 
>  call 
> PetscViewerBinaryOpen(PETSC_COMM_SELF,'matrix',FILE_MODE_WRITE,view,ierr)
>  call PetscViewerBinaryGetDescriptor(view,fd,ierr)
>  call PetscBinaryWrite(fd,ham,1,PETSC_SCALAR,PETSC_FALSE,ierr)
> 
> These lines do create a matrix but matlab says its not a binary file. Could 
> you please provide me some inputs on where I'm going wrong and how to proceed 
> with this problem. I can provide any further information that you might need 
> to help me solve this problem. 
> 
> 
> Thank you.
> 
> Sincerely,
> Pranay. 

Reply via email to