删取网格中的一部分
Posted 博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了删取网格中的一部分相关的知识,希望对你有一定的参考价值。
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);
以上是关于删取网格中的一部分的主要内容,如果未能解决你的问题,请参考以下文章