码迷,mamicode.com
首页 > 其他好文 > 详细

删取网格中的一部分

时间:2016-05-23 21:08:44      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:

技术分享
 1 function [node,elem] = delmesh(node,elem,expr)
 2 %% DELMESH delete part of the mesh 
 3 
 4 dim = size(node,2); elemdim = size(elem,2);
 5 %% delete element
 6 switch elemdim
 7     case 3
 8         center = (node(elem(:,1),:)+node(elem(:,2),:)+node(elem(:,3),:))/3;
 9     case 4    
10         center = (node(elem(:,1),:) + node(elem(:,2),:) ...
11                 + node(elem(:,3),:) + node(elem(:,4),:))/4;
12 end
13 x = center(:,1);  y = center(:,2); %#ok<*NASGU>
14 if dim == 3
15     z = center(:,3); %#ok<*NASGU>
16 end
17 idx = eval(expr);
18 elem(idx,:) = [];
19 
20 %% delete vertices
21 isValidNode = false(size(node,1),1);
22 isValidNode(elem(:)) = true;
23 node = node(isValidNode,:);
24 
25 %% shift index of element
26 Nnew = sum(isValidNode);
27 indexMap(isValidNode) = (1:Nnew);
28 elem = indexMap(elem);
delmesh

 

删取网格中的一部分

标签:

原文地址:http://www.cnblogs.com/wangshixi12/p/5521292.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!