Changeset 16470 for issm/trunk-jpl/src/m/plot/processdata.m
- Timestamp:
- 10/20/13 20:31:07 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/plot/processdata.m
r16325 r16470 37 37 end 38 38 39 %Process Patch 40 if isstruct(data) 41 if (isprop(data,'index') & isprop(data,'value')), 42 if data.interpolation(1)==P1Enum(), 43 data=data.value; 44 data=data'; 45 data=data(:); 46 datatype=4; 47 elseif data.interpolation(1)==P0Enum(), 48 data=data.value; 49 datatype=5; 50 else 51 error(['interpolation ' data.interpolation(1) ' not supported yet']); 52 end 53 else 54 error('structure other than Patch not supported yet'); 55 end 56 else 57 %initialize datatype 58 datatype=0; 59 end 39 %initialize datatype 40 datatype=0; 60 41 61 42 %get datasize 62 43 datasize=size(data); 63 44 64 %non patch processing 65 if datatype~=4 & datatype~=5, 45 %transpose data if necessary 46 if (size(data,2) > size(data,1)), 47 data=data'; 48 end 49 datasize=size(data); 66 50 67 %transpose dataif necessary68 if (size(data,2) > size(data,1)), 69 data=data';70 end71 datasize=size(data); 51 %convert to double if necessary 52 if ~isnumeric(data); 53 disp('processdata info message: data is not numeric (logical?). Converted to double'); 54 data=double(data); 55 end 72 56 73 %convert to double if necessary 74 if ~isnumeric(data); 75 disp('processdata info message: data is not numeric (logical?). Converted to double'); 76 data=double(data); 77 end 57 %check length 58 if datasize(1)~=md.mesh.numberofvertices & datasize(1)~=md.mesh.numberofelements & datasize(1)~=md.mesh.numberofvertices*6 & (md.mesh.dimension==3 & ~(datasize(1)==numberofelements2d | datasize(1)==numberofvertices2d)) 59 error('plotmodel error message: data not supported yet'); 60 end 78 61 79 %check length 80 if datasize(1)~=md.mesh.numberofvertices & datasize(1)~=md.mesh.numberofelements & datasize(1)~=md.mesh.numberofvertices*6 & (md.mesh.dimension==3 & ~(datasize(1)==numberofelements2d | datasize(1)==numberofvertices2d)) 81 error('plotmodel error message: data not supported yet'); 82 end 62 %quiver? 63 if datasize(2)>1, 64 datatype=3; 83 65 84 %quiver? 85 if datasize(2)>1, 86 datatype=3; 87 88 %check number of columns, add zeros if necessary, 89 if (md.mesh.dimension==3) 90 if datasize(2)==2, 91 data=[data, zeros(datasize(1),1)]; 92 elseif datasize(2)~=3, 93 error('plotmodel error message: data provided should have 2 or 3 columns for quiver plot, and 1 for regular plot'); 94 end 66 %check number of columns, add zeros if necessary, 67 if (md.mesh.dimension==3) 68 if datasize(2)==2, 69 data=[data, zeros(datasize(1),1)]; 70 elseif datasize(2)~=3, 71 error('plotmodel error message: data provided should have 2 or 3 columns for quiver plot, and 1 for regular plot'); 72 end 95 73 %elseif ((md.mesh.dimension==2) & datasize(2)~=2), 96 74 % error('plotmodel error message: data provided should have 2 columns for quiver plot, and 1 for regular plot'); 97 end98 75 end 76 end 99 77 100 101 102 103 104 105 106 107 108 78 %treat the case datasize(1)=6*nodes 79 if datasize(1)==6*md.mesh.numberofvertices 80 %keep the only norm of data 81 data1=data(1:6:md.mesh.numberofvertices*6,:); 82 data2=data(2:6:md.mesh.numberofvertices*6,:); 83 data=sqrt(data1.^2+data2.^2); 84 datasize(1)=md.mesh.numberofvertices; 85 %---> go to node data 86 end 109 87 110 111 112 113 114 115 88 %treat the case datasize(1)=nodes2d 89 if (md.mesh.dimension==3 & datasize(1)==numberofvertices2d), 90 data=project3d(md,'vector',data,'type','node'); 91 datasize(1)=md.mesh.numberofvertices; 92 %---> go to node data 93 end 116 94 117 118 119 120 121 122 95 %treat the case datasize(1)=nodes2d 96 if (md.mesh.dimension==3 & datasize(1)==numberofelements2d), 97 data=project3d(md,'vector',data,'type','element'); 98 datasize(1)=md.mesh.numberofelements; 99 %---> go to node data 100 end 123 101 124 %smoothing? 125 if exist(options,'smooth') 126 data=averaging(md,data,getfieldvalue(options,'smooth')); 127 datasize(1)=md.mesh.numberofvertices; 128 %---> go to node data 129 end 102 %smoothing? 103 if exist(options,'smooth') 104 data=averaging(md,data,getfieldvalue(options,'smooth')); 105 datasize(1)=md.mesh.numberofvertices; 106 %---> go to node data 130 107 end 131 108
Note:
See TracChangeset
for help on using the changeset viewer.