Changeset 179 for trunk/src/proj_field.m


Ignore:
Timestamp:
Jan 9, 2011, 12:56:28 PM (13 years ago)
Author:
sommeria
Message:

various bug repairs, in particular for 3D fields

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/proj_field.m

    r174 r179  
    4040%       Role = 'scalar':  (default) represents a scalar field
    4141%            = 'coord':  represents a set of unstructured coordinates, whose
    42 %                     space dimension is given by the last array dimension (called 'nb_dim').
     42%                     space dimension is given by the last array dimension (called 'NbDim').
    4343%            = 'coord_x', 'coord_y',  'coord_z': represents a separate set of
    4444%                        unstructured coordinate x, y  or z
    4545%            = 'vector': represents a vector field whose number of components
    46 %                is given by the last dimension (called 'nb_dim')
     46%                is given by the last dimension (called 'NbDim')
    4747%            = 'vector_x', 'vector_y', 'vector_z'  :represents the x, y or z  component of a vector 
    4848%            = 'warnflag' : provides a warning flag about the quality of data in a 'Field', default=0, no warning
     
    100100end
    101101       
    102 % OBSOLETE
     102%% OBSOLETE
    103103if isfield(ObjectData,'XMax') && ~isempty(ObjectData.XMax)
    104104    ObjectData.RangeX(1)=ObjectData.XMax;
     
    120120end
    121121%%%%%%%%%%
     122
     123%% apply projection depending on the object style
    122124switch ObjectData.Style
    123125    case 'points'
     
    131133            [ProjData,errormsg] = proj_line(FieldData,ObjectData);
    132134        end
    133      %A FAIRE : GERER MASK
    134135    case 'plane'
    135 %         if isfield(FieldData,'NbDim') & isequal(FieldData.NbDim,3)
    136 %             ProjData= proj_plane3D(FieldData,ObjectData);%
    137 %         else
    138136            [ProjData,errormsg] = proj_plane(FieldData,ObjectData);
    139 %         end
    140137    case 'volume'
    141138        [ProjData,errormsg] = proj_volume(FieldData,ObjectData);
     
    300297            %DimIndices(ind_1)=[]; %suppress singleton dimensions
    301298%             indxy=find(DimVarIndex(DimIndices));%select dimension variables (DimIndices non zero)
    302             %nb_dim=length(DimIndices)%number of space dimensions
    303             nb_dim=numel(VarType.coord);
     299            %NbDim=length(DimIndices)%number of space dimensions
     300            NbDim=numel(VarType.coord);
    304301            Coord_z=[];
    305302            Coord_y=[];
    306303            Coord_x=[];   
    307             for idim=1:nb_dim %loop on space dimensions
     304            for idim=1:NbDim %loop on space dimensions
    308305                test_interp(idim)=0;%test for coordiate interpolation (non regular grid), =0 by default
    309306                test_coord(idim)=0;%test for defined coordinates, =0 by default
     
    10051002%-----------------------------------------------------------------
    10061003idimvar=0;
    1007 [CellVarIndex,NbDim,VarTypeCell,errormsg]=find_field_indices(FieldData);
     1004[CellVarIndex,NbDimVec,VarTypeCell,errormsg]=find_field_indices(FieldData);
    10081005if ~isempty(errormsg)
    10091006    errormsg=['error in proj_field/proj_plane:' errormsg];
     
    10161013icoord=0;
    10171014nbcoord=0;%number of added coordinate variables brought by projection
     1015nbvar=0;
    10181016for icell=1:length(CellVarIndex)
    1019     if NbDim(icell)<2
     1017    NbDim=NbDimVec(icell);
     1018    if NbDim<2
    10201019        continue
    10211020    end
     
    11291128            %ProjData.DimValue=[ProjData.
    11301129             %length(coord_X)];
    1131             nbvar=0;
     1130
    11321131            for ivar=VarIndex %transfer variables to the projection plane
    11331132                VarName=FieldData.ListVarName{ivar};
     
    11431142                    ProjData.VarDimName=[ProjData.VarDimName DimCell];
    11441143                    nbvar=nbvar+1;
    1145                     if isfield(FieldData,'VarAttribute') & length(FieldData.VarAttribute) >=ivar
     1144                    if isfield(FieldData,'VarAttribute') && length(FieldData.VarAttribute) >=ivar
    11461145                        ProjData.VarAttribute{nbvar}=FieldData.VarAttribute{ivar};
    11471146                    end
     
    12151214       
    12161215%% case of input fields defined on a structured  grid
    1217     else 
    1218         AYName=FieldData.ListVarName{VarType.coord(1)};%name of input x coordinate (name preserved on projection)
    1219         AXName=FieldData.ListVarName{VarType.coord(2)};%name of input y coordinate (name preserved on projection)
     1216    else
     1217        VarName=FieldData.ListVarName{VarIndex(1)};%get the first variable of the cell to get the input matrix dimensions
     1218        eval(['DimValue=size(FieldData.' VarName ');'])%input matrix dimensions
     1219        DimValue(find(DimValue==1))=[];%remove singleton dimensions       
     1220        NbDim=numel(DimValue);%update number of space dimensions
     1221        nbcolor=1; %default number of 'color' components: third matrix index without corresponding coordinate
     1222        if NbDim>=3
     1223            if NbDim>3
     1224                errormsg='matrices with more than 3 dimensions not handled';
     1225                return
     1226            else
     1227                VarType.coord
     1228                if numel(find(VarType.coord))==2% the third matrix dimension does not correspond to a space coordinate
     1229                    nbcolor=DimValue(3);
     1230                    DimValue(3)=[]; %number of 'color' components updated
     1231                    NbDim=2;% space dimension set to 2
     1232                end
     1233            end
     1234        end
     1235        AYName=FieldData.ListVarName{VarType.coord(NbDim-1)};%name of input x coordinate (name preserved on projection)
     1236        AXName=FieldData.ListVarName{VarType.coord(NbDim)};%name of input y coordinate (name preserved on projection)   
    12201237        eval(['AX=FieldData.' AXName ';'])
    12211238        eval(['AY=FieldData.' AYName ';'])
    1222         VarName=FieldData.ListVarName{VarIndex(1)};%get the first variable of the cell to get the input matrix dimensions
    1223         eval(['DimValue=size(FieldData.' VarName ');'])%input matrix dimensions
    12241239        ListDimName=FieldData.VarDimName{VarIndex(1)};
    1225         ProjData.ListVarName=[{AYName} {AXName} ProjData.ListVarName]; %TODO: check if it already exists in Projdata (several cells)
    1226         ProjData.VarDimName=[{AYName} {AXName} ProjData.VarDimName];
    1227         nbcolor=1; %default
    1228         for idim=1:length(ListDimName)
    1229             DimName=ListDimName{idim};
    1230             if strcmp(DimName,'rgb')||strcmp(DimName,'nb_coord')||strcmp(DimName,'nb_coord_i')
    1231                nbcolor=DimValue(idim);
    1232                DimValue(idim)=[];
    1233             end
    1234             if isequal(DimName,'nb_coord_j')% NOTE: CASE OF TENSOR NOT TREATED
    1235                 DimValue(idim)=[];
    1236             end
    1237         end 
    1238         ind_1=find(DimValue==1);
     1240        ProjData.ListVarName=[ProjData.ListVarName {AYName} {AXName}]; %TODO: check if it already exists in Projdata (several cells)
     1241        ProjData.VarDimName=[ProjData.VarDimName {AYName} {AXName}];
     1242
     1243%         for idim=1:length(ListDimName)
     1244%             DimName=ListDimName{idim};
     1245%             if strcmp(DimName,'rgb')||strcmp(DimName,'nb_coord')||strcmp(DimName,'nb_coord_i')
     1246%                nbcolor=DimValue(idim);
     1247%                DimValue(idim)=[];
     1248%             end
     1249%             if isequal(DimName,'nb_coord_j')% NOTE: CASE OF TENSOR NOT TREATED
     1250%                 DimValue(idim)=[];
     1251%             end
     1252%         end 
    12391253        Coord_z=[];
    12401254        Coord_y=[];
    12411255        Coord_x=[];   
    1242         nb_dim=numel(DimValue);
    1243         for idim=1:nb_dim %loop on space dimensions
     1256
     1257        for idim=1:NbDim %loop on space dimensions
    12441258            test_interp(idim)=0;%test for coordiate interpolation (non regular grid), =0 by default
    12451259            ivar=VarType.coord(idim);% index of the variable corresponding to the current dimension
     
    12681282        end
    12691283        if DY==0
    1270             DY=abs(DCoord_min(nb_dim-1));
    1271         end
    1272         npY=1+round(abs(Coord{nb_dim-1}(end)-Coord{nb_dim-1}(1))/DY);%nbre of points after interpol
     1284            DY=abs(DCoord_min(NbDim-1));
     1285        end
     1286        npY=1+round(abs(Coord{NbDim-1}(end)-Coord{NbDim-1}(1))/DY);%nbre of points after interpol
    12731287        if DX==0
    1274             DX=abs(DCoord_min(nb_dim));
    1275         end
    1276         npX=1+round(abs(Coord{nb_dim}(end)-Coord{nb_dim}(1))/DX);%nbre of points after interpol
    1277         for idim=[1:nb_dim]
     1288            DX=abs(DCoord_min(NbDim));
     1289        end
     1290        npX=1+round(abs(Coord{NbDim}(end)-Coord{NbDim}(1))/DX);%nbre of points after interpol
     1291        for idim=[1:NbDim]
    12781292            if test_interp(idim)
    12791293                DimValue(idim)=1+round(abs(Coord{idim}(end)-Coord{idim}(1))/abs(DCoord_min(idim)));%nbre of points after possible interpolation on a regular gri
    12801294            end
    12811295        end       
    1282         Coord_y=linspace(Coord{nb_dim-1}(1),Coord{nb_dim-1}(end),npY);
    1283         test_direct_y=test_direct(nb_dim-1);
    1284         Coord_x=linspace(Coord{nb_dim}(1),Coord{nb_dim}(end),npX);
    1285         test_direct_x=test_direct(nb_dim);
    1286         DAX=DCoord_min(nb_dim);
    1287         DAY=DCoord_min(nb_dim-1);
    1288         if nb_dim==3
    1289             DZ=abs(DCoord_min(1));
    1290             Coord_z=linspace(Coord{1}(1),Coord{1}(end),DimValue(1));
    1291             test_direct_z=test_direct(1);
    1292         end 
     1296        Coord_y=linspace(Coord{NbDim-1}(1),Coord{NbDim-1}(end),npY);
     1297        test_direct_y=test_direct(NbDim-1);
     1298        Coord_x=linspace(Coord{NbDim}(1),Coord{NbDim}(end),npX);
     1299        test_direct_x=test_direct(NbDim);
     1300        DAX=DCoord_min(NbDim);
     1301        DAY=DCoord_min(NbDim-1); 
    12931302        minAX=min(Coord_x);
    12941303        maxAX=max(Coord_x);
     
    13111320            YMin=min(ycor_new);
    13121321        end
    1313         DXinit=(maxAX-minAX)/(DimValue(2)-1);
    1314         DYinit=(maxAY-minAY)/(DimValue(1)-1);
     1322        DXinit=(maxAX-minAX)/(DimValue(NbDim)-1);
     1323        DYinit=(maxAY-minAY)/(DimValue(NbDim-1)-1);
    13151324        if DX==0
    13161325            DX=DXinit;
     
    13181327        if DY==0
    13191328            DY=DYinit;
     1329        end
     1330        if NbDim==3
     1331            DZ=(Coord{1}(end)-Coord{1}(1))/(DimValue(1)-1);
     1332            if ~test_direct(1)
     1333                DZ=-DZ;
     1334            end
     1335            Coord_z=linspace(Coord{1}(1),Coord{1}(end),DimValue(1));
     1336            test_direct_z=test_direct(1);
    13201337        end
    13211338        npX=floor((XMax-XMin)/DX+1);
     
    13341351        % case with no rotation and interpolation
    13351352        if isequal(ProjMode,'projection') && isequal(Phi,0) && isequal(Theta,0) && isequal(Psi,0)
    1336             if ~testXMin && ~testXMax && ~testYMin && ~testYMax && nb_dim==2
     1353            if ~testXMin && ~testXMax && ~testYMin && ~testYMax && NbDim==2
    13371354                ProjData=FieldData;
    13381355            else
    1339                 if test_direct(1)
    1340                     min_ind1=ceil((YMin-Coord{1}(1))/DYinit)+1;
    1341                     max_ind1=floor((YMax-Coord{1}(1))/DYinit)+1;
    1342                     Ybound(1)=Coord{1}(1)+DYinit*(min_ind1-1);
    1343                     Ybound(2)=Coord{1}(1)+DYinit*(max_ind1-1);
     1356                indY=NbDim-1;
     1357                if test_direct(indY)
     1358                    min_indy=ceil((YMin-Coord{indY}(1))/DYinit)+1;
     1359                    max_indy=floor((YMax-Coord{indY}(1))/DYinit)+1;
     1360                    Ybound(1)=Coord{indY}(1)+DYinit*(min_indy-1);
     1361                    Ybound(2)=Coord{indY}(1)+DYinit*(max_indy-1);
    13441362                else
    1345                     min_ind1=ceil((Coord{1}(1)-YMax)/DYinit)+1;
    1346                     max_ind1=floor((Coord{1}(1)-YMin)/DYinit)+1;
    1347                     Ybound(2)=Coord{1}(1)-DYinit*(max_ind1-1);
    1348                     Ybound(1)=Coord{1}(1)-DYinit*(min_ind1-1);
    1349                 end              
    1350                 if test_direct(2)==1
    1351                     min_ind2=ceil((XMin-Coord{2}(1))/DXinit)+1;
    1352                     max_ind2=floor((XMax-Coord{2}(1))/DXinit)+1;
    1353                     Xbound(1)=Coord{2}(1)+DXinit*(min_ind2-1);
    1354                     Xbound(2)=Coord{2}(1)+DXinit*(max_ind2-1);
     1363                    min_indy=ceil((Coord{indY}(1)-YMax)/DYinit)+1;
     1364                    max_indy=floor((Coord{indY}(1)-YMin)/DYinit)+1;
     1365                    Ybound(2)=Coord{indY}(1)-DYinit*(max_indy-1);
     1366                    Ybound(1)=Coord{indY}(1)-DYinit*(min_indy-1);
     1367                end   
     1368                if test_direct(NbDim)==1
     1369                    min_indx=ceil((XMin-Coord{NbDim}(1))/DXinit)+1;
     1370                    max_indx=floor((XMax-Coord{NbDim}(1))/DXinit)+1;
     1371                    Xbound(1)=Coord{NbDim}(1)+DXinit*(min_indx-1);
     1372                    Xbound(2)=Coord{NbDim}(1)+DXinit*(max_indx-1);
    13551373                else
    1356                     min_ind2=ceil((Coord{2}(1)-XMax)/DXinit)+1;
    1357                     max_ind2=floor((Coord{2}(1)-XMin)/DXinit)+1;
    1358                     Xbound(2)=Coord{2}(1)+DXinit*(max_ind2-1);
    1359                     Xbound(1)=Coord{2}(1)+DXinit*(min_ind2-1);
     1374                    min_indx=ceil((Coord{NbDim}(1)-XMax)/DXinit)+1;
     1375                    max_indx=floor((Coord{NbDim}(1)-XMin)/DXinit)+1;
     1376                    Xbound(2)=Coord{NbDim}(1)+DXinit*(max_indx-1);
     1377                    Xbound(1)=Coord{NbDim}(1)+DXinit*(min_indx-1);
    13601378                end
    1361                 if nb_dim==3 %TODO: to update
    1362                     min_ind3=ceil((Coord{1}(1)-ZMax)/DZinit)+1;
    1363                     max_ind2=floor((Coord{1}(2)-XMin)/DZinit)+1;
    1364                     Zbound(2)=Coord{1}(1)+DXinit*(max_ind2-1);
    1365                     Zbound(1)=Coord{1}(1)+DXinit*(min_ind2-1);
     1379                iz_str=':'; %default
     1380                if NbDim==3
     1381                    DimCell(1)=[]; %suppress z variable
     1382                    DimValue(1)=[];
     1383                                        %structured coordinates
     1384                    if test_direct(1)
     1385                        iz=ceil((ObjectData.Coord(1,3)-Coord{1}(1))/DZ)+1;
     1386                    else
     1387                        iz=ceil((Coord{1}(1)-ObjectData.Coord(1,3))/DZ)+1;
     1388                    end
    13661389                end
    1367                 min_ind1=max(min_ind1,1);% deals with margin (bound lower than the first index)
    1368                 min_ind2=max(min_ind2,1);
    1369                 max_ind1=min(max_ind1,DimValue(1));
    1370                 max_ind2=min(max_ind2,DimValue(2));
    1371                 for ivar=VarIndex
     1390                min_indy=max(min_indy,1);% deals with margin (bound lower than the first index)
     1391                min_indx=max(min_indx,1);
     1392                max_indy=min(max_indy,DimValue(1));
     1393                max_indx=min(max_indx,DimValue(2));
     1394                for ivar=VarIndex% loop on non coordinate variables
    13721395                    VarName=FieldData.ListVarName{ivar};
    13731396                    ProjData.ListVarName=[ProjData.ListVarName VarName];
     
    13761399                        ProjData.VarAttribute{length(ProjData.ListVarName)}=FieldData.VarAttribute{ivar};
    13771400                    end
    1378                     eval(['ProjData.' VarName '=FieldData.' VarName '(min_ind1:max_ind1,min_ind2:max_ind2,:) ;']);
     1401                    if NbDim==3
     1402                        eval(['ProjData.' VarName '=squeeze(FieldData.' VarName '(iz,min_indy:max_indy,min_indx:max_indx));']);
     1403                    else
     1404                        eval(['ProjData.' VarName '=FieldData.' VarName '(min_indy:max_indy,min_indx:max_indx,:);']);
     1405                    end
    13791406                end 
    13801407                eval(['ProjData.' AYName '=[Ybound(1) Ybound(2)];']) %record the new (projected ) y coordinates
     
    13821409            end
    13831410        else       % case with rotation and/or interpolation
    1384             if isempty(Coord_z) %2D case
     1411            if NbDim==2 %2D case
    13851412                [X,Y]=meshgrid(coord_x_proj,coord_y_proj);%grid in the new coordinates
    13861413                XIMA=ObjectData.Coord(1,1)+(X)*cos(Phi)-Y*sin(Phi);%corresponding coordinates in the original image
     
    14361463            else %3D case
    14371464                if isequal(Theta,0) & isequal(Phi,0)       
     1465                    % unstructured z coordinate
    14381466                    test_sup=(Coord{1}>=ObjectData.Coord(1,3));
    14391467                    iz_sup=find(test_sup);
     
    14481476                            eval(['ProjData.' VarName '=squeeze(FieldData.' VarName '(iz,:,:));'])% select the z index iz
    14491477                            %TODO : do a vertical average for a thick plane
    1450                             if test_interp(2) | test_interp(3)
     1478                            if test_interp(2) || test_interp(3)
    14511479                                eval(['ProjData.' VarName '=interp2(Coord{3},Coord{2},ProjData.' VarName ',Coord_x,Coord_y'');'])
    14521480                            end
     
    14611489        end
    14621490    end
    1463    
     1491
    14641492    %% projection of  velocity components in the rotated coordinates
    14651493    if ~isequal(Phi,0) && length(ivar_U)==1
     
    15231551% test for 3D fields
    15241552test3D=0;
    1525 if isfield(FieldData,'nb_dim')
    1526     test3D=isequal(FieldData.nb_dim,3);
     1553if isfield(FieldData,'NbDim')
     1554    test3D=isequal(FieldData.NbDim,3);
    15271555end
    15281556test3C=test3D; %default 3 vel components
     
    18291857        DimIndices(ind_1)=[]; %suppress singleton dimensions
    18301858%         indxy=find(DimVarIndex(DimIndices));%select dimension variables (DimIndices non zero)
    1831         nb_dim=length(DimIndices);%number of space dimensions
     1859        NbDim=length(DimIndices);%number of space dimensions
    18321860        Coord_z=[];
    18331861        Coord_y=[];
    18341862        Coord_x=[];   
    18351863   
    1836         for idim=1:nb_dim %loop on space dimensions
     1864        for idim=1:NbDim %loop on space dimensions
    18371865            test_interp(idim)=0;%test for coordiate interpolation (non regular grid), =0 by default
    18381866            ivar=DimVarIndex(DimIndices(idim));% index of the variable corresponding to the current dimension
     
    18561884            end
    18571885        end
    1858         if nb_dim==2
     1886        if NbDim==2
    18591887            if DY==0
    18601888                DY=abs(DCoord_min(1));
     
    18731901            DAX=DCoord_min(2);
    18741902            DAY=DCoord_min(1);
    1875         elseif nb_dim==3
     1903        elseif NbDim==3
    18761904            DZ=abs(DCoord_min(1));
    18771905            npz=1+round(abs(Coord{1}(end)-Coord{1}(1))/DZ);%nbre of points after interpolation
     
    19371965        if isequal(ProjMode,'projection') && isequal(Phi,0) && isequal(Theta,0) && isequal(Psi,0)
    19381966            if test_direct(1)
    1939                 min_ind1=ceil((YMin-Coord{1}(1))/DYinit)+1;
    1940                 max_ind1=floor((YMax-Coord{1}(1))/DYinit)+1;
    1941                 Ybound(1)=Coord{1}(1)+DYinit*(min_ind1-1);
    1942                 Ybound(2)=Coord{1}(1)+DYinit*(max_ind1-1);
     1967                min_indy=ceil((YMin-Coord{1}(1))/DYinit)+1;
     1968                max_indy=floor((YMax-Coord{1}(1))/DYinit)+1;
     1969                Ybound(1)=Coord{1}(1)+DYinit*(min_indy-1);
     1970                Ybound(2)=Coord{1}(1)+DYinit*(max_indy-1);
    19431971            else
    1944                 min_ind1=ceil((Coord{1}(1)-YMax)/DYinit)+1;
    1945                 max_ind1=floor((Coord{1}(1)-YMin)/DYinit)+1;
    1946                 Ybound(2)=Coord{1}(1)-DYinit*(max_ind1-1);
    1947                 Ybound(1)=Coord{1}(1)-DYinit*(min_ind1-1);
     1972                min_indy=ceil((Coord{1}(1)-YMax)/DYinit)+1;
     1973                max_indy=floor((Coord{1}(1)-YMin)/DYinit)+1;
     1974                Ybound(2)=Coord{1}(1)-DYinit*(max_indy-1);
     1975                Ybound(1)=Coord{1}(1)-DYinit*(min_indy-1);
    19481976            end             
    19491977            if test_direct(2)==1
    1950                 min_ind2=ceil((XMin-Coord{2}(1))/DXinit)+1;
    1951                 max_ind2=floor((XMax-Coord{2}(1))/DXinit)+1;
    1952                 Xbound(1)=Coord{2}(1)+DXinit*(min_ind2-1);
    1953                 Xbound(2)=Coord{2}(1)+DXinit*(max_ind2-1);
     1978                min_indx=ceil((XMin-Coord{2}(1))/DXinit)+1;
     1979                max_indx=floor((XMax-Coord{2}(1))/DXinit)+1;
     1980                Xbound(1)=Coord{2}(1)+DXinit*(min_indx-1);
     1981                Xbound(2)=Coord{2}(1)+DXinit*(max_indx-1);
    19541982            else
    1955                 min_ind2=ceil((Coord{2}(1)-XMax)/DXinit)+1;
    1956                 max_ind2=floor((Coord{2}(1)-XMin)/DXinit)+1;
    1957                 Xbound(2)=Coord{2}(1)+DXinit*(max_ind2-1);
    1958                 Xbound(1)=Coord{2}(1)+DXinit*(min_ind2-1);
     1983                min_indx=ceil((Coord{2}(1)-XMax)/DXinit)+1;
     1984                max_indx=floor((Coord{2}(1)-XMin)/DXinit)+1;
     1985                Xbound(2)=Coord{2}(1)+DXinit*(max_indx-1);
     1986                Xbound(1)=Coord{2}(1)+DXinit*(min_indx-1);
    19591987            end
    1960             min_ind1=max(min_ind1,1);% deals with margin (bound lower than the first index)
    1961             min_ind2=max(min_ind2,1);
    1962             max_ind1=min(max_ind1,DimValue(1));
    1963             max_ind2=min(max_ind2,DimValue(2));
     1988            min_indy=max(min_indy,1);% deals with margin (bound lower than the first index)
     1989            min_indx=max(min_indx,1);
     1990            max_indy=min(max_indy,DimValue(1));
     1991            max_indx=min(max_indx,DimValue(2));
    19641992            for ivar=VarIndex
    19651993                VarName=FieldData.ListVarName{ivar};
    19661994                ProjData.ListVarName=[ProjData.ListVarName VarName];
    1967                 %ProjData.VarDimIndex=[ProjData.VarDimIndex [nb_dim-1 nb_dim]];
     1995                %ProjData.VarDimIndex=[ProjData.VarDimIndex [NbDim-1 NbDim]];
    19681996                if length(FieldData.VarAttribute)>=ivar
    19691997                    ProjData.VarAttribute{length(ProjData.ListVarName)}=FieldData.VarAttribute{ivar};
    19701998                end
    1971                 eval(['ProjData.' VarName '=FieldData.' VarName '(min_ind1:max_ind1,min_ind2:max_ind2) ;']);
     1999                eval(['ProjData.' VarName '=FieldData.' VarName '(min_indy:max_indy,min_indx:max_indx) ;']);
    19722000            end         
    19732001        else
Note: See TracChangeset for help on using the changeset viewer.