Matlab编程
文章平均质量分 93
nineheaded_bird
这个作者很懒,什么都没留下…
展开
-
【matlab编程】matlab随机数函数
Matlab内部函数a. 基本随机数Matlab中有两个最基本生成随机数的函数。1.rand()生成(0,1)区间上均匀分布的随机变量。基本语法:rand([M,N,P ...])生成排列成M*N*P... 多维向量的随机数。如果只写M,则生成M*M矩阵;如果参数为[M,N]可以省略掉方括号。一些例子:rand(5,1) %生成5转载 2014-03-11 20:06:24 · 6768 阅读 · 1 评论 -
【算法编程】小学数学题难倒博士
昨天在科学网上得知这样一个新闻《越南小学数学题难倒博士》,据悉题目来自越南保禄小学三年班,不过报道称该题难倒了上至博士下至家长,未免也太言过其实了。题目描述学生需要在下图表格中按由上至下、从左到右的顺序,填入1~9的数字,可重复填写,并按先乘除后加减(图中冒号代表除法)的运算法则,完成整条算式。 解题方法显然,这题对于我们这种程序员来说完全不是问题,只要在大一上过C语言的原创 2015-05-27 09:48:17 · 6448 阅读 · 8 评论 -
【Matlab编程】哈夫曼编码的Matlab实现
在前年暑假的时候,用C实现了哈夫曼编译码的功能,见文章《哈夫曼树及编译码》。不过在通信仿真中,经常要使用到Matlab编程,所以为了方便起见,这里用Matlab实现的哈夫曼编码的功能。至于哈夫曼编译码的基本原理,我们可以参考之前的文章《哈夫曼树及编译码》,里面有详细的说明及图解过程。下面直接给出具体的Matlab实现的哈夫曼编码函数,由于程序中注释还算比较详细,在此就不予与说明:functio原创 2015-05-04 11:31:45 · 81075 阅读 · 19 评论 -
【小白话通信】离散分布的生成
本文讲解的不是离散、连续分布的一些性质如:方差、期望和概率密度函数pdf(若为离散分布,则是概率质量函数pmf)等。本文要讲解的是如何通过均匀分布来产生其他各种分布的方法。尽管很多编程语言的函数库中包含了这些分布函数: 在matlab中,我们可以看到关于这些函数的详细文档及使用方法: 在linux C下,GNU有一个名字叫GUN Scientific Library的库,里面有各种分布函数原创 2015-05-09 11:35:32 · 3829 阅读 · 0 评论 -
【算法导论】八皇后问题的算法实现(C、MATLAB、Python版)
八皇后问题是一道经典的回溯问题。问题描述如下:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将8个皇后放在棋盘上(有8*8个方格),使它们谁也不能被吃掉? 看到这个问题,最容易想到的就是遍历穷举法,不过仔细一想,思路虽然非常清晰,但是需要遍历次数太多,时间复杂度很高。那么,我们应该怎么办呢?下面给出算法思路: 算法思想:首先尝试在第一行放置第一个皇后,原创 2015-03-26 12:41:26 · 6602 阅读 · 3 评论 -
【数值分析】拉格朗日插值与牛顿插值
在工程应用和科学研究中,经常要研究变量之间的关系y=f(x)。但对于函数f(x),常常得不到一个具体的解析表达式,它可能是通过观测或实验得到的一组数据(x,f(x)),x为一向量;或则是解析表达式非常复杂,不便于计算和使用。因此我们需要寻找一个计算比较简单的函数S(x)近似代替f(x),并使得S(x)=f(x),这种方法就称为插值法。常用的插值法有: 一维插值法:拉格朗原创 2015-01-22 20:30:08 · 19692 阅读 · 0 评论 -
【数值分析】误差的分析与减少及Matlab解线性方程的四种方法
1、误差的来源 模型误差:数学模型与实际问题之间的误差 观测误差:测量数据与实际数据的误差 方法误差:数学模型的精确解与数值方法得到的数值解之间的误差:例如 舍入误差:对数据进行四舍五入后产生的误差2、减少误差的几种方法 现在,我们一般用计算机解决计算问题,使用最多的是Matlab软件。对实际问原创 2015-01-20 20:19:00 · 14447 阅读 · 1 评论 -
【工程优化】最优化算法--牛顿法、阻尼牛顿法及单纯形法
牛顿法 使用条件:目标函数具有二阶导数,且海塞矩阵正定。 优缺点: 收敛速度快、计算量大、很依赖初始点的选择。 算法的基本步骤: 由上面的步骤可得基本的算法流程图:原创 2015-02-09 11:53:03 · 7618 阅读 · 0 评论 -
【随机过程】马氏链的理论与仿真
在2014年终总结中,我提到要对这学期学过的数学课中的部分算法进行仿真实现。《数值分析》和《工程优化》这两门数学课里面还有些专门讲算法的,可以用来仿真。在《随机过程》这门课中,几乎全都是公式推导,定理证明,实在难以仿真实现。最后发现,马尔科夫链这一章比较适合仿真,况且先前也写过类似的程序,更重要的是之前有人也问过关于马氏链的Matlab实现问题。关于马氏链的理论原理在这就不作描述,下面直接用程序来原创 2015-01-27 09:52:48 · 3657 阅读 · 0 评论 -
【Matlab编程】马氏链随机模拟
本文是利用蒙特卡罗算法对马氏链过程的模拟。假设有10个状态,从每个状态到与之相邻状态的概率是相同的,仿真次数为1000,及进行了1000次状态转移。我们以动画的形式再现了状态转移的过程,并记录了到达每个状态的次数,具体实现如下:close all;clc;clear; figure; s=1;n=1000;r=1; % 圆圈的半径title('等概率情况的计算机模拟')set(gc原创 2014-06-24 09:29:58 · 7418 阅读 · 2 评论 -
【matlab编程】Matlab版扫雷
我发现有些人平常闲着的时候会玩window自带的游戏,其中最常见的就是扫雷和纸牌。本来想用matlab编写全自动扫雷程序用来作弊,可是后来发现扫雷问题是NP完全问题(正如:旅行商NP难问题一样不能被解决),便放弃了。于是编写了类似扫雷游戏(没有经过大量测试,可能有bug,效率也不高,作弊:在命令窗口输入minefield 其中,值为1的地方为雷区)。大致规则和原来一样,只是做了些改进:加入了音乐和原创 2014-03-01 18:36:08 · 18110 阅读 · 3 评论 -
【Matlab编程】Matlab让电脑失而复得
在学校经常有同学电脑失窃,大抵都是粗细大意。据说iPhone手机失窃后可以获取小偷的照片,从而将照片找到。现在用matlab写一个程序使得当小偷使用电脑上网时,电脑自动将电脑前面的人的照片发到你指定的邮箱。前提是你的电脑装有摄像头并且有网!先用下面代码测试你邮箱是否正确设置:clear myaddress='sender@qq.com';%这里sender为你发邮箱的qq号,注意你的邮箱要原创 2014-06-25 23:41:46 · 2093 阅读 · 0 评论 -
【Matlab编程】Matlab高效编程技巧
1.默认状态下,matlab显示精度是short型,而默认的计算精度是double型,并且显示精度与计算精度没有关系。2. 一只失明的猫的问题:注意方法!3.给数组预分配空间是基本的高效编程准则之一。如果不预先分配内存具体的动态扩充数组内存的实现方式如下:如果预分配空间,则只将新添加的值放入连续的内存中,而不会将整个数组重新分配空间。4.matlab也可以使用windo原创 2014-06-16 18:39:20 · 3812 阅读 · 0 评论 -
【Matlab编程】Matlab及Java小时钟
一年前曾经用matlab的gui做了一个时钟,由于是直接用GUIDE和ActiveX控件写的,程序虽说有许多行,大多数都是自动生成的,自己写的只有十几行而已。闲着没事,就耗费了下午的时间用matlab和Java分别又写了写。具体代码如下:1.matlab脚本文件:%%%%%%%%%%%%%%%设置图像属性并获取图像句柄%%%%%%%%%%%%%%%%%%%%%%%%%%%h=figur原创 2014-03-18 16:58:54 · 5586 阅读 · 0 评论 -
【Matlab编程】生日快乐歌(显示歌词)—matlab版
clear all A4=440;%标准音A4 不同的曲调音调不同scale的取值范围不同 pt=44100;p0=pt/2;%频率 scale=A4/2^(9/12)*2.^((-12:11)/12);%这里可以调节音调高低,eg:改变式子中的-12:11为0:23 map=[1 3 5 6 8 10 12 13 15 17 18 20 22 24 25];%音符,这个需要看曲谱编码原创 2014-05-24 10:22:15 · 14500 阅读 · 4 评论 -
【Matlab编程】matlab 画图
1. 不用截图工具就可以将图保存成图像格式,并且没有背景颜色:saveas(gcf ,’outputname’,’png/jpg’),第三项省略时默认为fig.m文件2. 计算形如(-1)^2/3,应该是默认先算(-1)^(1/3),plot的时候命令窗会警告略去了虚部, 为了避免不必要的麻烦((-1)^2)^1/3这样写,例子如下:这个是代码clearclcsubpl原创 2014-05-30 19:38:05 · 2421 阅读 · 1 评论 -
【漫漫科研路\Matlab】最小跳数最大权重算法
上周,实验室国际友人让我帮忙实现满足条件的最小跳数最大权重的算法。他的具体问题如下: 给定一个权重图(如下图所示),给出节点之间最小跳数最大权重矩阵,其中任意两点之间跳数小于等于3,否则权重为inf。 如图所示, A到B的最小跳数为2:A-C-B和A-D-B,权重分别为7、8。因此A到B的最小跳数最大权重为8,路径为A-D-B。下面给出了具体的代码实现: 主要有两个文件,测试脚本文件mai原创 2017-12-17 16:38:56 · 2090 阅读 · 0 评论