[PETSC #19080] Re: reading matlab binary files

Barry Smith bsmith at mcs.anl.gov
Sun Feb 22 11:17:05 CST 2009


    What did you find confusing about the comments? They seem pretty  
straightforward to us; how can we improve them.

    Barry

On Feb 22, 2009, at 8:35 AM, Khan, Irfan wrote:

> Thanks Barry, I have been able to load the matrix. The comments in  
> the PetscBinaryRead.m may be misleading. I have pasted them below.
>
>
>
> %
> %   [varargout] = PetscBinaryRead(inarg[,comp[,cnt]])
> %
> %  Reads in PETSc binary file matrices or vectors
> %  emits as Matlab sparse matrice or vectors.
> %
> %  Argument may be file name (string), socket number (integer)
> %  or any Matlab class that provides the read() and close() methods
> %  [We provide PetscOpenFile() and PetscOpenSocket() for binary  
> files and sockets]
> %
> %  comp = 'complex' means the input file is complex
> %  comp = 'cell' means return a Matlab cell array
> %         if cnt is given then cnt PETSc objects are read otherwise
> %         all objects are read in
> %
>
> Regards
> Irfan
>
>
>
>
>
>
>
>
>
>
> ----- Original Message -----
> From: "Barry Smith" <bsmith at mcs.anl.gov>
> To: "Irfan Khan" <irfan.khan at gatech.edu>
> Cc: "PETSc users list" <petsc-users at mcs.anl.gov>, petsc-maint at mcs.anl.gov
> Sent: Saturday, February 21, 2009 2:19:55 PM GMT -05:00 US/Canada  
> Eastern
> Subject: Re: [PETSC #19080] Re: reading matlab binary files
>
>
>   OK, I just downloaded petsc-3.0.0-p3 from the web:
>
> barry-smiths-macbook-pro:~/Datafiles/Matrices] barrysmith% setenv
> MATLABPATH /Users/barrysmith/Src/petsc-3.0.0-p3/bin/matlab
> [barry-smiths-macbook-pro:~/Datafiles/Matrices] barrysmith% matlab -
> nojvm -nodisplay
>                                                 < M A T L A B (R) >
>                                       Copyright 1984-2008 The
> MathWorks, Inc.
>                                              Version 7.7.0.471  
> (R2008b)
>                                                  September 17, 2008
>
>
>   To get started, type one of these: helpwin, helpdesk, or demo.
>   For product information, visit www.mathworks.com.
>
>>> a = PetscBinaryRead('matrix.m');
>>>
>
> I think you do not have the correct PETSc installed. Please DELETE any
> PETSc you have installed and get petsc-3.0.0-p3 then do what I have
> done above
> to load the matrix. You do NOT have to first run config and make on
> PETSc to try the load.
>
> Make sure your MATLABPATH doesn't have some old PETSc in its path.
>
>
>    Barry
>
>
> I On Feb 20, 2009, at 1:33 PM, Khan, Irfan wrote:
>
>> I installed the latest petsc code and tried binary matlab output and
>> read again. It did not work, I get the same error message. I have
>> attached the binary file with this email. The .info files were empty
>> and as I mentioned I did not get any error messages.
>> The matlab version I am using is 7.4.0.287 (R2007a).
>>
>> Thanks for the help
>> Regards
>> Irfan
>>
>>
>> ----- Original Message -----
>> From: "Barry Smith" <bsmith at mcs.anl.gov>
>> To: "PETSc users list" <petsc-users at mcs.anl.gov>
>> Sent: Friday, February 20, 2009 12:27:18 PM GMT -05:00 US/Canada
>> Eastern
>> Subject: Re: reading matlab binary files
>>
>>
>>  Irfan,
>>
>>   Make sure you use the absolutely latest PETSc patches version.
>> There were some problems that we just recently fixed.
>> If that does not solve the problem send the binary file to petsc-maint at mcs.anl.gov
>>
>>   Barry
>>
>> On Feb 20, 2009, at 10:51 AM, Khan, Irfan wrote:
>>
>>> Hi
>>>
>>> In an earlier email to the group Barry mentioned that if the matrix
>>> sizes are large, the output should be done in binary format and bin/
>>> matlab/PetscBinaryRead.m should be used to read the matrix into
>>> matlab.
>>>
>>> I have output the matrix in the following manner.
>>>
>>>     ierr   =  PetscViewerBinaryOpen(PETSC_COMM_WORLD, fname,
>>> FILE_MODE_WRITE, &viewer);
>>>     ierr   =
>>> PetscObjectSetName((PetscObject)obj.Amat,"Stiffness_matrix");
>>>     ierr   =  MatView(obj.Amat,viewer);
>>>
>>> I don't get any error messages during execution. However, when I
>>> have not been successful reading the matrix into matlab. Presently I
>>> get the following error messages.
>>>
>>>
>>>
>>> ??? Error using ==> fread
>>> Invalid file identifier.  Use fopen to generate a valid file
>>> identifier.
>>>
>>> Error in ==> PetscOpenFile.read at 5
>>> d = fread(freader.fd,count,datatype);
>>>
>>> Error in ==> PetscBinaryRead at 49
>>> header = read(fd,1,'int32');
>>>
>>>
>>> Any suggestions to solve the problem?
>>>
>>> Thanks
>>> Irfan
>>
>> <matrix.m>
>



More information about the petsc-users mailing list