返回首页
  • MATLAB判断一个点是否在多边形内部,比inpolygon更健壮 日期:2012-11-08 00:36:22 点击:3833 好评:-2

    matlab中提供了判断一个点是否在多边形内部的函数inpolygon,但是这个函数存在与polyarea类似的问题,即要求定义多边形的点必须是沿着多边形连续的,而这在很多时候很难保证。采用类似的思想,我对这个函数进行了适当改造,其健壮性立见提高。 函数 myinpolygon.m function flag = myinpolygon(X,Y,xv,yv)% decide if the...

  • MATLAB如何判断两条直线平行 日期:2012-11-08 00:34:54 点击:617 好评:8

    两条直线平行的判据比较简单,只要斜率相等就可以了。但也有特殊情况,比如平行于y轴的直线斜率没有定义。 综合考虑以上情形,就不难将程序写出来,具体如下: 函数 isparallellines.m function flag = isparallellines(line1, line2)% decide if two lines are parallel.% Input:% line1: [a1 b1 c1], equation coefficie...

  • MATLAB计算多边形面积,比polyarea更加健壮 日期:2012-11-08 00:29:52 点击:3414 好评:36

    matlab自带了一个用于计算多边形面积的函数polyarea,但是这个函数使用起来比较让人纠结,它要求多边形的顶点必须指定为连续的,但在很多时候,这个是很难做到的,尤其是顶点数比较多的情况下。所以这个函数的健壮性就比较差。 比如,使用polyarea计算下面这些顶点定义的多边形的面积,得到50,这是正确的。 -5 0 0 -5 5 0...

  • matlab计算多面体体积实现代码 日期:2012-11-08 00:28:34 点击:1277 好评:6

    一个多面体的体积应该如何计算? 这本来是一个比较复杂的问题,应该要用到积分,但在matlab中确实很简单的事情,因为有现成的函数,只要稍微组合一下就可以。 下面我把函数写成了被调用的格式,输入参数为多面体的顶点坐标。 代码 vpolyhedron.m function volume = vpolyhedron(vertex)% calculate the volume of a polyhe...

  • xyz2lmp: 将xyz格式转成lammps的data file教程 日期:2012-11-08 00:26:38 点击:577 好评:2

    目前,大部分的建模软件都支持导出xyz文件格式,而并不支持直接导出lammps所需要的data file文件格式。因此将xyz文件格式转换成lammps的格式是很有必要的。 原子数比较少的,可以自己手动编辑完成,对于原子数比较多的,实在比较麻烦。所以就写了下面的脚本可以帮助完成这一过程。 目前,程序只适用于合金体系,即不考虑力...

  • 可视化软件atomeye简介、使用方法及常用快捷键 日期:2012-11-08 00:25:26 点击:1337 好评:-2

    atomeye是一款小巧的、功能强大的可视化软件,由 李巨 开发(据说是其博士期间苦于没有很好的可视化软件而开发的)。 atomeye的优势 1. 可以轻松可视化原子数在百万级的体系(目前,我还没有发现其他的可视化软件能够做到如此); 2. 程序小巧,仅仅4M; 3. 无需编译,直接运行(这个可能未必算优点); 4. 可以远程在终端...

  • 标准及扩展cfg文件格式简介 日期:2012-11-08 00:22:06 点击:198 好评:2

    cfg是晶体学中非常常用的一种文件格式,很多可视化软件都支持,而且包含的信息量要比xyz文件格式要大,比如晶胞信息。 对于进行分子动力学,尤其是使用lammps进行分子动力学的筒子,我强烈推荐使用这种格式。 cfg格式主要包括两种:标准cfg格式和扩展cfg格式。两者略有不同。 标准CFG格式 下面以一例简要介绍标准cfg格式。...

  • MATLAB计算平衡晶格常数使用基础教程 日期:2012-11-08 00:17:05 点击:424 好评:0

    材料的平衡晶格常数是比较常见和基础的性质,在开始入门计算材料时一般都会接触到。 一般的方法是计算晶体在不同晶格常数下的结合能,然后通过对结合能进行拟合,找到能量的最小值,对应的就是平衡晶格常数。 这里忽略具体如何获取这些晶格常数结合能数值对,而介绍如何...

  • MATLAB获取文本的行数代码 日期:2012-11-08 00:15:10 点击:988 好评:2

    有时会需要获取文本的行数,matlab虽然没有提供直接的函数,但是实现也来也很简单。下面给出代码。 function lines = get_lines(fid)% This function can be used to get the lines of a plain text file.% Input:% fid: id of the file% Output:% lines: lines of the input file.% Powered by Xianbao Duan% Email: Xia...

  • matlab判断一个点是否在多面体内代码 日期:2012-11-08 00:10:59 点击:647 好评:2

    要在空位区域随机放置一定数量的原子,这些原子在空位区域任何一处存在的概念是相同的。空位区域是由包围这个空位周边的一些原子定义的。 如果这个空位区域是一个标准的长方体,那么问题就比较简单,只需要产生随机数,然后再将随机数沿着基矢方向进行相应的缩放。 对于不规则的空间区域,也可以采用类似的思想:将空位区...

推荐内容