Matlab Tricks

很多人说Matlab没有C高效,而其实上很多相同功能的数学运算,Matlab比C等语言高效的多。使用Matlab时脑子里要时刻警惕自己避免使用for循环,Matlab的强大就在于矩阵运算,其实很多逻辑矩阵运算就能够完成。(C语言的for循环是很低效的,可能会导致算法效率低下无法求解)。 1. 有时进行矩阵运算时会出现奇异矩阵无法计算,这时需要定位矩阵的全零行:find(sum(abs(A),2)==0) 2. 发现全零后需要删除矩阵的某一行:A(i,:)==[] 3. 把matlab结果保存到文本中:save result.txt p -ascii 4. 把矩阵中的某些元素值为a的全部替换为b:C(C==a)=b 5. 无界面情况下如何绘图并保存:set(gca, ‘UserData’, {‘gscatter’ x y g}); saveas(gca, ['D:/test.fig']) 6. 习惯性在程序开头加上rand(‘state’,1); randn(‘state’,1); 以保证实验结果可以重现。

[z]Deeplearning原文作者Hinton代码注解

跑Hinton最初代码时看到这篇注释文章,很少细心,待研究。。。 原文地址:>http://www.cnblogs.com/BeDPS/p/3182725.html Matlab示例代码为两部分,分别对应不同的论文:    1. Reducing the Dimensionality of data with neural networks       ministdeepauto.m   backprop.m   rbmhidlinear.m    2. A fast learing algorithm for deep belief net      mnistclassify.m   backpropclassfy.m       其余部分代码通用。    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    mnistclassify.m    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    clear all    close all    maxepoch=50;    %迭代次数    numhid=500; numpen=500; numpen2=2000;     fprintf(1,’Converting Raw files into Matlab format \n’);    converter;      fprintf(1,’Pretraining a deep autoencoder. \n’);    fprintf(1,’The Science paper used 50 epochs. This uses %3i \n’, maxepoch);    makebatches;%分批数据     [numcases numdims numbatches]=size(batchdata); %获取batchdata数据大小    … 继续阅读

Solr4.0 如何配置使用UUID自动生成id值

下面是转来的一篇文章,经过测试使用,OK。不过要注意的问题是,既然id是自动生成的,那么如果有两份一模一样的数据建立索引的时候会有各自不同的id而保存多份数据,如果id由自己来指定的话就比较方便以后数据更新。 原地址:http://blog.csdn.net/keepthinking_/article/details/8501058 最近学习了Lucene,随便也学习了Solr,Solr规定每一条记录必须有一个主键值,用来唯一标识一条索引的记录,默认是使用id字段来作主键的(可以通过修改schema.xml文件更改),最烦的是这个主键不能设置自动增长,所以每添加一条记录,不得不手动为id字段赋值,如果不小心重复了,还很恶心的直接覆盖了原来的记录,所以在编程的时候不得不通过一些途径来维护这个id值,通过google发现了一个可以自动生成id值的方法,即让solr自动生成UUID值(Universal Unique Identifiers通用唯一标识符),这样编程的时候就不用维护这个id值了,使用这种做法的缺点就是:id值不是数值连续的,它是一串字符,如:5bb977a7-8a4c-46d6-ae49-b4eefade080c 具体配置如下:(这是Solr 4.0的配置) 一、配置schema.xml文件 1、添加fieldType <types>       <!– other field types –>       <fieldType name=“uuid” class=“solr.UUIDField” indexed=“true” />   </types>   2、添加主键id字段配置(注释或者删除原来的id字段配置,切记) <field name=“id” type=“uuid” indexed=“true” stored=“true” required=“true” multiValued=“false” />   二、配置solrconfig.xml文件 1、注释掉以下的配置,原因及可能产出的异常参考:https://issues.apache.org/jira/browse/SOLR-3398 <searchComponent name=“elevator” class=“solr.QueryElevationComponent” >     <str name=“queryFieldType”>string</str>     <str name=“config-file”>elevate.xml</str>   </searchComponent>   2、添加一个updateRequestProcessorChain配置 <updateRequestProcessorChain name=“uuid”>       <processor class=“solr.UUIDUpdateProcessorFactory”>           <str name=“fieldName”>id</str>       </processor>       <processor class=“solr.RunUpdateProcessorFactory” />   </updateRequestProcessorChain>   3、修改其中一个requestHandler配置,注意:上一步是添加,而这里是修改,如果直接添加的话,那么就会重复配置,这样后面的配置会覆盖前面的配置,本人就是很不幸的被默认的配置覆盖了我添加的配置,当时够郁闷的! <requestHandler name=“/update” class=“solr.UpdateRequestHandler”>       <!– See below for information on defining              updateRequestProcessorChains that can be used by name              on each Update Request          –>       <!–           <lst name=“defaults”>   … 继续阅读

Transform TXT 2 MAT in matlab

%transfer txt to mat format    for i=0:19        sourceFileName=['topic400digit4Train',num2str(i)];        matData = load(sourceFileName);        save([sourceFileName,'.mat'],’matData’)    end   Matlab数据转换成txt文本的方法: save file.txt testTF -ascii 如果文件名 file.txt有变量存储,如filename 则应采用如下格式进行保存 save(filename, ‘testTF’, ‘-ascii’)