output to matlab readable format
Yixun Liu
enjoywm at cs.wm.edu
Tue Feb 24 14:55:52 CST 2009
You mean PETSc has no option to only output non-zero values with the
format (row, column, value)?
Khan, Irfan wrote:
> I don't think so. Petsc has its own way to output matrix information in binary format that is platform independent.
> However, I found that after loading into matlab, you can save or output the matrix in a format that you want.
>
> Irfan
>
> ----- Original Message -----
> From: "Yixun Liu" <enjoywm at cs.wm.edu>
> To: "PETSc users list" <petsc-users at mcs.anl.gov>
> Sent: Tuesday, February 24, 2009 3:39:51 PM GMT -05:00 US/Canada Eastern
> Subject: Re: output to matlab readable format
>
> Thanks!
>
> Can I save matrix into (row, column, value) format?
>
>
> Khan, Irfan wrote:
>
>> You will need to open a binary file to output the data. Try the following.
>>
>>
>> PetscViewer viewer;
>> ierr = PetscViewerBinaryOpen(PETSC_COMM_WORLD, "matrix", FILE_MODE_WRITE, &viewer);
>> ierr = MatView(Amat,viewer);
>> PetscViewerDestroy(viewer);
>>
>> In order to load the file into matlab do the following
>>
>> % $PETSC_DIR/bin/matlab/PetscBinaryRead("<path_to_file>")
>>
>> Irfan
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> Hi,
>> I use the following code to output matrix into file which can be read by
>> matlab,
>>
>> PetscViewer aviewer;
>> PetscViewerCreate(PETSC_COMM_WORLD, &aviewer);
>> PetscViewerSetType(aviewer, PETSC_VIEWER_ASCII);
>> //PetscObjectSetName((PetscObject)sparseMechanicalStiffnessMatrix,
>> aname);
>> PetscViewerSetFormat(aviewer, PETSC_VIEWER_ASCII_MATLAB);
>> PetscViewerFileSetName(aviewer, aname);
>> MatView(sparseMechanicalStiffnessMatrix, aviewer);
>> PetscViewerDestroy(aviewer);
>>
>>
>>
>> The error is ASCII format file doesn't allow the matrix exceeds 512
>> rows. So I change PETSC_VIEWER_ASCII to PETSC_VIEWER_BINARY, but it seem
>> that PETSc outputs to screen.
>>
>> Thanks.
>>
>>
More information about the petsc-users
mailing list