Matlab与Simulink仿真学习心得
班级:07610 学号:072016 姓名:吕天雄
一  Matlab学习心得体会与编程实践
<1>学习Matlab的心得体会
真正开始接触Matlab是大二上就开始了,到现在已经一年多了,在此之间,Matlab的确为我提供了很多便利。Matlab的确不愧成为是草稿纸上的语言。我们不必去为很简单的显示效果图形去一些什么其他软件或者研究比较复杂的计算机图形学,一个plot或者别的函数往往就可以得到很满意的效果。
    其实最初开始学习matlab的时候感觉这个东西和C没什么两样,但是后来具体到一些
东西,比如信号处理和数学建模上以后才感觉到使用matlab编写程序去验证结果比C要节
省很多时间,而且matlab写东西基本都是按照自己的思路平铺直叙很少去考虑什么函数的
嵌套调用或者指针等等很头疼的东西。
关于matlab的学习,我感觉其实百度和matlab自带的help基本能够解决绝大数问题,
而且一些比较好的论坛比如www.ilovematlab都会为你产生很大的帮助,关键是在于多动手实践,多思考。但是matlab毕竟只是一个工具,原理和一些基本的编程素质还是必须有的,否则matlab最多也只能是验证一些别人的东西而已,根本帮不上什么忙的。
  <2>遇到的一些问题的思考方式与解决办法
    最开始用matlab的时候是在大物实验,实验要求去根据测量得到的数据作出图。但是
手动用铅笔去画确实很麻烦,所以用matlab确实可以省去很大的麻烦。但是第一次遇到问
的时候是有关极化坐标下的曲线拟合。
首先是一个物理实验的问题;在做一个关于光的偏振的实验的时候,最后的结果要在一个极化坐标下显示出来;因为数据是离散的,所以显示出来的图像是一个折来折去的一个东东;  然后很自然的想法是对这个曲线进行插值处理。
    但是极化坐标下MATLAB并未提供插值处理的函数,interp1这个函数只能在笛卡尔坐标
系,也就是直角坐标系下使用。
     然后就想到把极坐标的数据转换的直角坐标系下,pol2cart可以实现这个想法,但是随后而来,也就是最后导致整个问题失败的关键也在这里。
     pol2cart以后产生的一串数据中出现了重复的数据,那么interp1这个东西也就无能为力了,因为interp1不能处理一串数据中有重复出现的情况。   最后的处理办法是把这些数据c
os,sin这些东西变换一下后,使其大致规则,然后再用polar画出极坐标下的图形。
 matlab学好了有什么用 接下来这个问题就有点超过我的范围了,可能会有点叙述不清楚。问题可以概要为:人脸网格插值。
这是一个用三角形网格表示的一个人脸模型。需要通过插值使其变得光滑,当然问题的复杂之处在于,插值会改变原本的网格结构。
     对于这个问题许多人都给出了解决的办法,当然是一些关于人脸识别技术和运动图像处理的范畴之内的。
 主要有两种,第一种是face—ls算法。这种算法是基于RBF(径向插值函数)和loop细分原则的一种算法,当然其精确程度比较差点。但是速度挺好。原理是:基于网格上的点,产生出顶点的迭代函数,从而产生出新的定点,进行细化。然后进行插值。也就是引进新的顶点。分为两个过程内部插值和边缘插值。具体可以去看兰州大学信息工程学院的学报。
     第二种也就是基本的老办法RBF。首先解释一下什么叫做径向插值
径向基函数
主要是考虑多维空间的数据插值问题,径向基函数在三维图形的变形中常常被采用,用其来变分三维人脸的时候还应结合人脸的固有特征。确定该方法来实现三维人脸变形是可行
的,但要构造好的基函数,以及解这些高维方程的解仍是难点。
插值方法:
假设大多数人脸的形状都可以由一个拓扑原型变化得来,那么,通过调整一个一般模型的构造参数可以建立不同的面部模型。但是,这种参数模型仅仅局限于那些构造参数已知的情况,并且对特定人脸参数的调整非常困难。在离散数据的多变量插值问题方面,径向基函数(radial basis function,RBF)插值方法是一个行之有效的工具,所以也适用于类似人脸这样高维曲面的近似或平滑插值。现有的许多方法使用了基于RBF的插值技术,将一般人脸网格变化到特定人脸的形状。这种方法的优点在于:(1)通过插值可以得到丢失的数据点,所以源网格和目标网格不需要相同数目的结点;(2)如果选择了合适的匹配点,数学上可以保证能够将源网格变形到目标网格。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。