随笔分类 -  Matlab

摘要:近期,在服务器上运行matlab程序,由于数据比较多,程序比较复杂,运行时间不固定,而且需要经常改变参数,重复运行几次,所以不清楚程序何时结束,以便于修改参数,继续运行。开始有时间就看看程序是否运行结束,次数多了后,就感觉分心,很不方便。为了在第一时间知道程序运行结束,就想到了让matlab在运行结束后,立刻通知我,这样就方便我立刻修改参数,继续运行。经过思考,百度或者google,尝试,这里介绍两种可行的方法:发送短信和发送有邮件。1. 发送短信由于以前有过在电脑上向手机发送短信的编程实现,所以在回顾自己的文章《 C#简单实现发送手机短信 》,再结合matlab中web的使用,实现了用中国网 阅读全文
posted @ 2014-02-28 21:04 ywl925 阅读(7018) 评论(2) 推荐(3) 编辑
摘要:前言:本文主要介绍PLSA及EM算法,首先给出LSA(隐性语义分析)的早期方法SVD,然后引入基于概率的PLSA模型,其参数学习采用EM算法。接着我们分析如何运用EM算法估计一个简单的mixture unigram 语言模型和混合高斯模型GMM的参数,最后总结EM算法的一般形式及运用关键点。对于改进PLSA,引入hyperparameter的LDA模型及其Gibbs Sampling参数估计方法放在本系列后面的文章LDA及Gibbs Samping介绍。1 LSA and SVDLSA(隐性语义分析)的目的是要从文本中发现隐含的语义维度-即“Topic”或者“Concept”。我们知道,在文档 阅读全文
posted @ 2014-02-17 16:43 ywl925 阅读(11632) 评论(1) 推荐(1) 编辑
摘要:编写matlab程序时,出现了“Attempt to execute SCRIPT mean as a function”,其实这是“Attempt to execute SCRIPT *** as a function”的一个具体案例,当遇到自己写的函数或者命名的文件和matlab自带的系统函数一样时,就会发生这种情况。例如:我写个一个mean.m的matlab程序,然后在里面用到了mean函数求平均值,当执行到这一行,系统不知道你请求的是mean.m文件还是系统mean函数,就会报出上述错误。解决方法:修改文件的名字。 阅读全文
posted @ 2013-10-13 18:44 ywl925 阅读(1710) 评论(0) 推荐(0) 编辑
摘要:Code Analyzer and ProfilerMatlab中,对写在m文件(.m文件)里的代码有分析的工具,可以进行优化,这里做一个简单的介绍。Code AnalyzerCode Analyzer工具可以分析用户M文件中的错误或性能问题,使用时,用户先打开M文件,选择Tools菜单下的Code Analyzer项,然后Code Analyzer子菜单中选中“Show Code Analyzer Report”项即可,具体操作过程和结果可以看下图:实际上,Code Analyzer分析得到的问题报告,并不一定要消除,具体问题具体分析。当用户认可某条分析结果时,单击分析结果的行号,即可快速定 阅读全文
posted @ 2013-09-25 19:33 ywl925 阅读(3446) 评论(0) 推荐(0) 编辑
摘要:理论:假设M是一个m×n阶矩阵,其中的元素全部属于域 K,也就是 实数域或复数域。如此则存在一个分解使得M = UΣV*,其中U是m×m阶酉矩阵;Σ是半正定m×n阶对角矩阵;而V*,即V的共轭转置,是n×n阶酉矩阵。这样的分解就称作M的奇异值分解。Σ对角线上的元素Σi,i即为M的奇异值。直观的解释在矩阵M的奇异值分解中 M = UΣV*·U的列(columns)组成一套对M的正交"输入"或"分析"的基向量。这些向量是M*M的特征向量。·V的列(columns)组成一套对M的正交"输出& 阅读全文
posted @ 2013-09-15 21:42 ywl925 阅读(1134) 评论(0) 推荐(0) 编辑
摘要:著名的科学杂志《Nature》于1999年刊登了两位科学家D.D.Lee和H.S.Seung对数学中非负矩阵研究的突出成果。该文提出了一种新的矩阵分解思想――非负矩阵分解(Non-negative Matrix Factorization,NMF)算法,即NMF是在矩阵中所有元素均为非负数约束条件之下的矩阵分解方法。该论文的发表迅速引起了各个领域中的科学研究人员的重视:一方面,科学研究中的很多大规模数据的分析方法需要通过矩阵形式进行有效处理,而NMF思想则为人类处理大规模数据提供了一种新的途径;另一方面,NMF分解算法相较于传统的一些算法而言,具有实现上的简便性、分解形式和分解结果上的可解释. 阅读全文
posted @ 2013-09-11 21:56 ywl925 阅读(8448) 评论(0) 推荐(0) 编辑
摘要:每次更新一点,慢慢增加nargin nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能。通常可以用他来设定一些默认值,如下面的函数。 例子,函数test1的功能是输出a和b的和。如果只输入一个变量,则认为另一个变量为0,如果两个变量都没有输入,则默认两者均为0。function y = testNargin(a,b)if nargin==0 a=0;b=0;elseif nargin==1 b=0;endy=a+b;end相关:varargout、nargout、vararginsubs这里subs的替换换就是元素替换调用格式: R = subs(S... 阅读全文
posted @ 2013-09-11 18:15 ywl925 阅读(878) 评论(0) 推荐(0) 编辑
摘要:协方差的意义和计算公式学过概率统计的孩子都知道,统计里最基本的概念就是样本的均值,方差,或者再加个标准差。首先我们给你一个含有n个样本的集合,依次给出这些概念的公式描述,这些高中学过数学的孩子都应该知道吧,一带而过。很显然,均值描述的是样本集合的中间点,它告诉我们的信息是很有限的,而标准差给我们描述的则是样本集合的各个样本点到均值的距离之平均。以这两个集合为例,[0,8,12,20]和[8,9,11,12],两个集合的均值都是10,但显然两个集合差别是很大的,计算两者的标准差,前者是8.3,后者是1.8,显然后者较为集中,故其标准差小一些,标准差描述的就是这种“散布度”。之所以除以n-1而不是 阅读全文
posted @ 2013-07-24 15:36 ywl925 阅读(219369) 评论(9) 推荐(16) 编辑
摘要:对于matlab,这里只是先简单写一下。由于经常做实验,简单的编程已经不能实现快速的实验,浪费时间。正好实验室有服务器,可以提供多核,实现并行。如何充分利用实验室服务器,实现程序的并行呢?由于,大部分时间是浪费在循环上,因此现在仅仅通过并行for循环,实现程序的并行,节省时间。即使用parfor ... end,这里要解决并行情况下,数据读写问题。这里使用Xshell登录服务器,通过matlab实现如下:1. 登录Xshell:ssh 服务器ip地址 输入用户名 密码 当然,这里可以通过保存上述信息,实现快速登录。2. 在session窗口,输入: matlab -nodisp... 阅读全文
posted @ 2013-05-17 23:56 ywl925 阅读(770) 评论(0) 推荐(0) 编辑
摘要:在论文中,结果的对比,常常用到皮尔逊相关系数,以检查结果的提高程度!1、简介皮尔逊相关也称为积差相关(或积矩相关)是英国统计学家皮尔逊于20世纪提出的一种计算直线相关的方法。假设有两个变量X、Y,那么两变量间的皮尔逊相关系数可通过以下公式计算:公式一:公式二:公式三:公式四:以上列出的四个公式等价,其中E是数学期望,cov表示协方差,N表示变量取值的个数。2、适用范围当两个变量的标准差都不为零时,相关系数才有定义,皮尔逊相关系数适用于:(1)、两个变量之间是线性关系,都是连续数据。(2)、两个变量的总体是正态分布,或接近正态的单峰分布。(3)、两个变量的观测值是成对的,每对观测值之间相互独立。 阅读全文
posted @ 2013-03-29 16:53 ywl925 阅读(10093) 评论(0) 推荐(0) 编辑
摘要:matlab函数randn:产生正态分布的随机数或矩阵的函数randn产生均值为0,方差 σ^2 = 1,标准差σ = 1的正态分布的随机数或矩阵的函数。用法:Y = randn(n)返回一个n*n的随机项的矩阵。如果n不是个数量,将返回错误信息。Y = randn(m,n) 或 Y = randn([m n])返回一个m*n的随机项矩阵。Y = randn(m,n,p,...) 或 Y = randn([m n p...])产生随机数组。Y = randn(size(A))返回一个和A有同样维数大小的随机数组。randn返回一个每次都变化的数量。s = randn('state 阅读全文
posted @ 2013-03-26 19:27 ywl925 阅读(1057) 评论(0) 推荐(0) 编辑
摘要:下面主要介绍matlab中矩阵的运算:.* 表示矩阵对应元素相乘,要求矩阵的尺寸一样或者一个为单数./ 表示矩阵对应元素相除,要求同上' 表示矩阵的转置,用法如:matrix‘+ 表示矩阵相加,要求矩阵尺寸一样或者一个为单数- 表示矩阵想减,要求同上* 表示矩阵相乘 阅读全文
posted @ 2013-03-26 16:59 ywl925 阅读(838) 评论(0) 推荐(0) 编辑
摘要:zeros(n):返回n by n值为零的矩阵zeros(m,n) or zeros([m n]):返回m by n值为零的矩阵zeros(m,n,'single'):返回single(单精度)的m by n零矩阵,single可以为double等matlab中解释如下:% ZEROS(N) is an N-by-N matrix of zeros.%% ZEROS(M,N) or ZEROS([M,N]) is an M-by-N matrix of zeros.%% ZEROS(M,N,P,...) or ZEROS([M N P ...]) is an M-by-N-by 阅读全文
posted @ 2013-03-26 16:47 ywl925 阅读(2647) 评论(0) 推荐(0) 编辑

Copyright at 2012 yangwenlong