[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