12 2012 档案

matlab增加数组元素的效率分析
摘要:给matlab增添数组元素是经常用到的功能,但是,有时候效率特别低。可进行如下测试:s = 50000;ticA = [];for i = 1:s A = [A,i];endtocElapsed time is 3.675602 seconds.会发现,随着i的增大,显示越来越慢。可以发现,越到后面越慢。这是因为matlab需要对每个元素进行移动。。。而如果采用下标赋值的形式:s = 50000;ticA = [];for i = 1:s A(i) = i;endtocElapsed time is 0.023905 seconds.则有明显的改进。而如果采用先声明空间,后改变值的方式:s.. 阅读全文

posted @ 2012-12-31 18:55 mapleWizard 阅读(410) 评论(0) 推荐(0)

利用矩阵的n次方求图的连通性
摘要:设A(nxn)为一个图的邻接矩阵,则a(i,j)表示两个点之间是否连通(1:连通,0:不连通)。那么A的k次方中的每一个a(i,j)表示点i和j之间长度为k的路的条数。假设一个图能划分成若干个子图,每个子图之间不相连,那么A^1+A^2+...+A^n能表示该图的连通性。为0则不可能在一个子图,为非0则可以在一个子图。如下图:其邻接矩阵为:0100000000101000000001000000000000100000000100000100000010000000010100000000100000000000010000100010A的平方为101000000002000000001010 阅读全文

posted @ 2012-12-10 21:13 mapleWizard 阅读(1232) 评论(0) 推荐(0)

利用矩阵奇异值分解对图像进行压缩
摘要:最近学习线性代数的有关东西,在看到奇异值分解(svd)时,发现了一个在图像压缩上的应用。奇异值分解:在线性代数中,我们知道对任意一个矩阵都存在奇异值分解,,其中U和V是标准正交矩阵,而是一个对角矩阵,每一个对角元是该矩阵的奇异值,奇异值指的是矩阵的特征值开根号。其具体分解形式如下:其中将A展开得将A看成一个图像的矩阵,上面和式的每一个分量按大小排序,越大,说明越重要。而后面的权很小,可以舍去,如果只取前面k项,则数据量为(m+n+1)k<<m*n因而达到了压缩图像的目的。通过对比发现,当k=1/20r时,能基本看清图像。当k=1/4r时基本看不出任何区别,对于长宽相等的图像,此时数 阅读全文

posted @ 2012-12-08 21:03 mapleWizard 阅读(888) 评论(0) 推荐(0)

程序莫名其妙地老死
摘要:调了一天最后在网上有人给了答案////////////////////////////////////////////////////main.cpp#include<iostream>#include<vector>#include"CPath.h"usingnamespacestd;intmain(){for(inti=0;i<10;++i){cout<<i;CPathpath1;CPathpath2;cross(path1,path2);path1.updatePathInfo();//这就是那个空函数,删掉就好了path2. 阅读全文

posted @ 2012-12-08 11:35 mapleWizard 阅读(165) 评论(0) 推荐(0)

导航