继续调试

来源:互联网 发布:股票交易大数据 编辑:程序博客网 时间:2024/04/30 11:54

position + BlockSize is: 37325528
------------ D:/CalibratedSpectra/5.22.sp data importing finished.------------
Now display the data

 


D:/CalibratedSpectra/5.22.sp
Current Pointer:2
standard Pointer:2
Current Pointer:3
standard Pointer:3
Current Pointer:4
standard Pointer:4
Current Pointer:5
standard Pointer:5
Current Pointer:6
standard Pointer:6
Current Pointer:7
standard Pointer:7
Current Pointer:8
standard Pointer:8
Current Pointer:9
standard Pointer:9
Current Pointer:10
standard Pointer:10
Current Pointer:11
standard Pointer:11
Current Pointer:12
standard Pointer:12
Current Pointer:13
standard Pointer:13
Current Pointer:14
standard Pointer:14
Current Pointer:15
standard Pointer:15
Current Pointer:16
standard Pointer:16
Current Pointer:17
standard Pointer:17
Current Pointer:18
standard Pointer:18
Current Pointer:19
standard Pointer:19
Current Pointer:20
standard Pointer:20
Current Pointer:21
standard Pointer:21
Current Pointer:22
standard Pointer:22
Current Pointer:23
standard Pointer:23
Current Pointer:24
standard Pointer:24
Current Pointer:25
standard Pointer:25
Current Pointer:26
standard Pointer:26
Current Pointer:27
standard Pointer:27
Current Pointer:28
standard Pointer:28
Current Pointer:29
standard Pointer:29
Current Pointer:30
standard Pointer:30
Current Pointer:31
standard Pointer:31
Current Pointer:32
standard Pointer:32
Current Pointer:33
standard Pointer:33
Current Pointer:34
standard Pointer:34
Current Pointer:35
standard Pointer:35
Current Pointer:36
standard Pointer:36
Current Pointer:37
standard Pointer:37
Current Pointer:38
standard Pointer:38
Current Pointer:39
standard Pointer:39
Current Pointer:40
standard Pointer:40
Current Pointer:41
standard Pointer:41
Current Pointer:42
standard Pointer:42
Current Pointer:43
standard Pointer:43
Current Pointer:44
standard Pointer:44
Current Pointer:45
standard Pointer:45
The first 4 characters are: PEPE
The description of the file is: 2D constant interval DataSet file  o 
 Enter the Do-while Loop
Current Pointer:47
standard Pointer:47
BlockID is: 120
Current Pointer:51
standard Pointer:51
Block size is: 29887
 -----------------Case DSet2DC1DIBlock; Read Nothing-----------------
standard Pointer:51
 +++++++++++++++++Case Else+++++++++++++++++++++++
Current Pointer:987
standard Pointer:987
position + BlockSize is: 1917
 +++++++++++++++++Case Else+++++++++++++++++++++++
Current Pointer:999
standard Pointer:999
position + BlockSize is: 1005
 +++++++++++++++++Case Else+++++++++++++++++++++++
Current Pointer:1009
standard Pointer:1009
position + BlockSize is: 1013
 -----------------Case DataSetNameMember-----------------
Current Pointer:1017
standard Pointer:1017
Current Pointer:1019
standard Pointer:1019
 -----------------Case DataSetAbscissaRangeMember-----------------
Current Pointer:1058
standard Pointer:1058
Current Pointer:1066
standard Pointer:1066
Current Pointer:1074
standard Pointer:1074
innerCode is: 29981
x0 is: 4000
xEnd is: 450
 +++++++++++++++++Case Else+++++++++++++++++++++++
Current Pointer:1098
standard Pointer:1098
position + BlockSize is: 1116
 -----------------Case DataSetIntervalMember-----------------
Current Pointer:1106
standard Pointer:1106
Current Pointer:1114
standard Pointer:1114
innerCode is: 29979
xDelta is: -1
 -----------------Case DataSetNumPointsMember-----------------
Current Pointer:1122
standard Pointer:1122
Current Pointer:1126
standard Pointer:1126
innerCode is: 29995
xDelta is: 3551
 -----------------Case DataSetXAxisLabelMember-----------------
Current Pointer:1134
standard Pointer:1134
Current Pointer:1136
standard Pointer:1136
Current Pointer:1140
standard Pointer:1140
 +++++++++++++++++Case Else+++++++++++++++++++++++
Current Pointer:1150
standard Pointer:1150
position + BlockSize is: 1154
 -----------------Case DataSetYAxisLabelMember-----------------
Current Pointer:1158
standard Pointer:1158
Current Pointer:1160
standard Pointer:1160
Current Pointer:1162
standard Pointer:1162
 +++++++++++++++++Case Else+++++++++++++++++++++++
Current Pointer:1172
standard Pointer:1172
position + BlockSize is: 1176
 +++++++++++++++++Case Else+++++++++++++++++++++++
Current Pointer:1182
standard Pointer:1182
position + BlockSize is: 1186
 +++++++++++++++++Case Else+++++++++++++++++++++++
Current Pointer:1200
standard Pointer:1200
position + BlockSize is: 1212
 -----------------Case DataSetAliasMember-----------------
Current Pointer:1208
standard Pointer:1208
Current Pointer:1210
standard Pointer:1210
Current Pointer:1228
standard Pointer:1228
 -----------------Case DataSetDataMember -----------------
Current Pointer:1236
standard Pointer:1236
Current Pointer:1238
standard Pointer:1238
The dimension of data array is: 3550
Current Pointer:29646
standard Pointer:29646
 +++++++++++++++++Case Else+++++++++++++++++++++++
Current Pointer:18677590
standard Pointer:18677590
position + BlockSize is: 37325528
------------ D:/CalibratedSpectra/5.22.sp data importing finished.------------
Now display the data

 

 

 

%function [data,xAxis, misc] = spload(filename)
%filename='spectrum.sp';
% Reads in spectra from PerkinElmer block structured files.
% This version supports 'Spectrum' SP files.
% Note that earlier 'Data Manager' formats are not supported.
%
% [data, xAxis, misc] = spload(filename):
%   data:  1D array of doubles; % has been updated to length * 2,
%           data = [xAxis,data];  i.e. , wavenumber and T% or absorbance
%   xAxis: vector for abscissa (e.g. Wavenumbers).
%   misc: miscellanous information in name,value pairs

% Copyright (C)2007 PerkinElmer Life and Analytical Sciences
% Stephen Westlake, Seer Green
%
% History
% 2007-04-24 SW     Initial version
close all
clear all
clc
filename='spectrum.sp';
% Block IDs
DSet2DC1DIBlock               =  120;
HistoryRecordBlock            =  121;
InstrHdrHistoryRecordBlock    =  122;
InstrumentHeaderBlock         =  123;
IRInstrumentHeaderBlock       =  124;
UVInstrumentHeaderBlock       =  125;
FLInstrumentHeaderBlock       =  126;
% Data member IDs
DataSetDataTypeMember              =  -29839;
DataSetAbscissaRangeMember         =  -29838;
DataSetOrdinateRangeMember         =  -29837;
DataSetIntervalMember              =  -29836;
DataSetNumPointsMember             =  -29835;
DataSetSamplingMethodMember        =  -29834;
DataSetXAxisLabelMember            =  -29833;
DataSetYAxisLabelMember            =  -29832;
DataSetXAxisUnitTypeMember         =  -29831;
DataSetYAxisUnitTypeMember         =  -29830;
DataSetFileTypeMember              =  -29829;
DataSetDataMember                  =  -29828;
DataSetNameMember                  =  -29827;
DataSetChecksumMember              =  -29826;
DataSetHistoryRecordMember         =  -29825;
DataSetInvalidRegionMember         =  -29824;
DataSetAliasMember                 =  -29823;
DataSetVXIRAccyHdrMember           =  -29822;
DataSetVXIRQualHdrMember           =  -29821;
DataSetEventMarkersMember          =  -29820;
% Type code IDs
ShortType               = 29999;
UShortType              = 29998;
IntType                 = 29997;
UIntType                = 29996;
LongType                = 29995;
BoolType                = 29988;
CharType                = 29987;
CvCoOrdPointType        = 29986;
StdFontType             = 29985;
CvCoOrdDimensionType    = 29984;
CvCoOrdRectangleType    = 29983;
RGBColorType            = 29982;
CvCoOrdRangeType        = 29981;
DoubleType              = 29980;
CvCoOrdType             = 29979;
ULongType               = 29978;
PeakType                = 29977;
CoOrdType               = 29976;
RangeType               = 29975;
CvCoOrdArrayType        = 29974;
EnumType                = 29973;
LogFontType             = 29972;


fid = fopen(filename,'r');
if fid == -1
    error('Cannot open the file.');
    return
end
i=ftell(fid)
position(i+1)=i
% Fixed file header of signature and description
signature = setstr(fread(fid, 4, 'uchar')');
position(i+1)=ftell(fid)
if ~strcmp(signature, 'PEPE')
   
    error('This is not a PerkinElmer block structured file.');
    return
end

description = setstr(fread(fid, 40, 'uchar')')
position(i+1)=ftell(fid)

% Initialize a variable so we can tell if we have read it.
xLen = int32(0);

% The rest of the file is a list of blocks
while ~feof(fid)
   
    if ftell(fid)<=55
    ['Entering the While Loop']
    else
        ['-------------------End of One Switch Case block -------------']
            ['-----------------------------------------------------------']
    end
   
    position(i+1)=ftell(fid)
    blockID = fread(fid,1,'int16')
    blockSize = fread(fid,1,'int32')
   
    % feof does not go true until after the read has failed.
    if feof(fid)
        break
    end
   
    switch blockID
        case DSet2DC1DIBlock
        % Wrapper block.  Read nothing.
['------------case DSet2DC1DIBlock Read nothing-----------------']
        case DataSetAbscissaRangeMember
            position(i+1)=ftell(fid)
['------------case DataSetAbscissaRangeMember----------------']           
            innerCode = fread(fid, 1, 'int16')
            %_ASSERTE(CvCoOrdRangeType == nInnerCode);
            x0 = fread(fid, 1, 'double')
            xEnd = fread(fid, 1, 'double')
               
        case DataSetIntervalMember
['------------case DataSetIntervalMember---------------------']            
            innerCode = fread(fid, 1, 'int16')
            xDelta = fread(fid, 1, 'double')

        case DataSetNumPointsMember
            ['------------case DataSetNumPointsMember---------------------']  
            innerCode = fread(fid, 1, 'int16')
            xLen = fread(fid, 1, 'int32')

        case DataSetXAxisLabelMember
          ['------------case DataSetXAxisLabelMember--------------------']    
            innerCode = fread(fid, 1, 'int16')
            len = fread(fid, 1, 'int16')
            xLabel = setstr(fread(fid, len, 'uchar')')

        case DataSetYAxisLabelMember
   ['------------case DataSetYAxisLabelMember--------------------']        
            innerCode = fread(fid, 1, 'int16')
            len = fread(fid, 1, 'int16')
            yLabel = setstr(fread(fid, len, 'uchar')')
           
        case DataSetAliasMember
['------------case DataSetAliasMember--------------------']             
            innerCode = fread(fid, 1, 'int16')
            len = fread(fid, 1, 'int16')
             position(i+1)=ftell(fid)
            alias = setstr(fread(fid, len, 'uchar')')
         
        case DataSetNameMember
['------------case DataSetNameMember--------------------']
             innerCode = fread(fid, 1, 'int16')
            len = fread(fid, 1, 'int16')
            originalName = setstr(fread(fid, len, 'uchar')')
         
        case DataSetDataMember
  ['------------case DataSetDataMember--------------------']          
            innerCode = fread(fid, 1, 'int16')
            len = fread(fid, 1, 'int32')
             position(i+1)=ftell(fid)
            % innerCode should be CvCoOrdArrayType
            % len should be xLen * 8
            if xLen == 0
                xLen = len / 8
            end
           
            data = fread(fid, xLen, 'double')
            plot(data)
 
        otherwise               % unknown block, just seek past it
            ['------------case Else, otherwise--------------------']
            fseek(fid, blockSize, 'cof');
            position(i+1)=ftell(fid)
    end
end
fclose(fid);

if xLen == 0
    error('The file does not contain spectral data.');
    return
end

% Expand the axes specifications into vectors
xAxis = x0 : xDelta : xEnd;
xAxis=xAxis.';
data=[xAxis,data];
% Return the other details as name,value pairs
misc(1,:) = {'xLabel', xLabel};
misc(2,:) = {'yLabel', yLabel};
misc(3,:) = {'alias', alias};
misc(4,:) = {'original name', originalName};

clear DSet2DC1DIBlock            ;
clear HistoryRecordBlock            ;
clear InstrHdrHistoryRecordBlock    ;
clear InstrumentHeaderBlock         ;
clear IRInstrumentHeaderBlock       ;
clear UVInstrumentHeaderBlock      ;
clear FLInstrumentHeaderBlock      ;
% Data member IDs
clear DataSetDataTypeMember        ;
clear DataSetAbscissaRangeMember        ;
clear DataSetOrdinateRangeMember       ;
clear DataSetIntervalMember          ;
clear DataSetNumPointsMember           ;
clear DataSetSamplingMethodMember   ;
clear DataSetXAxisLabelMember    ;
clear DataSetYAxisLabelMember  ;
clear DataSetXAxisUnitTypeMember  ;
clear DataSetYAxisUnitTypeMember ;
clear DataSetFileTypeMember  ;
clear DataSetDataMember    ;
clear DataSetNameMember    ;
clear DataSetChecksumMember  ;
clear DataSetHistoryRecordMember   ;
clear DataSetInvalidRegionMember  ;
clear DataSetAliasMember     ;
clear DataSetVXIRAccyHdrMember  ;
clear DataSetVXIRQualHdrMember  ;
clear DataSetEventMarkersMember ;
% Type code IDs
clear ShortType               ;
clear UShortType              ;
clear IntType                 ;
clear UIntType               ;
clear LongType                ;
clear BoolType               ;
clear CharType               ;
clear CvCoOrdPointType ;
clear StdFontType         ;
clear CvCoOrdDimensionType   ;
clear CvCoOrdRectangleType   ;
clear RGBColorType           ;
clear CvCoOrdRangeType       ;
clear DoubleType             ;
clear CvCoOrdType             ;
clear ULongType               ;
clear PeakType               ;
clear CoOrdType              ;
clear RangeType               ;
clear CvCoOrdArrayType        ;
clear EnumType               ;
clear LogFontType            ;

原创粉丝点击