Matlab之accumarray用好索引矩阵

直接上例子,如果有: val = [1 2 3 4 5]; subs = [1 1 4 2 4]‘; (subs必须为列向量,且必须和val同维度) 那么,A = accumarray(subs, val); 的结果是什么呢? Q: accumarray总体是干嘛的? A: 笼统的说,是用subs向量中的信息从val中提取数值做累加,累加完的结果放到A中。 Q: subs是干嘛的? A: subs是一个累加指示向量。 subs提供的信息由两个: (a). subs向量中的每个位置对应val的每个位置,因而两个向量必须同维度; (b). subs中元素值相同的,val中的对应元素累加,元素值是累加完后放到A的什么地方。 如:上面的例子中,subs(2),subs(4)都是2,所以,val(2)和val(4)累加起来,放到A(2)这个位置上。 Q: val是干嘛的? A: val是提供累加数值的,谁累加呢?就是A中的数值累加。选哪些数进行累加呢?subs向量中数值相同的对应位置的数。累加完后放到哪里呢?放到subs中指示的位置。 Q: … 继续阅读

CTex中如何输入中文

网上有的给出的示例主要是针对Latex的,而CTex可能对应的语法有细微区别,具体使用实例如下: 使用CJK宏包 。 首先在文件的头部(\documentclass 之后)加上: \usepackage{CJK}    然后在正文中(\ begin{document} 到 \ end{document})需要使用中文的地方使用:    \begin{CJK*}{GBK}{song}    ……    中文或者英文    ……    \end{CJK*}   这样中间的中文部分就会以宋体来排版。常用的其他字体还有:fs(仿宋)、kai(楷体)、hei(黑体)、li(隶书)、you(幼圆)。命令中的 GBK 是指中文内码,还可以用 GB 和 BIG5(繁体字),前提是相应的字库设置是正确的。CJK Setup for Win32 中已经设置好了 GB 和 GBK。 如果在中间想要改变中文字体,就可以使用: \CJKfamily{GBK}{fs}   来改为仿宋字体。 改变中文字体的大小使用和英文相同的命令,也就是说中文和它附近的英文大小始终都是一致的。 例如: \documentclass{article}    … 继续阅读

ls -l命令如何只输出文件名

【场景】:一个目录下有好多子目录,子目录中有一些文件需要打印出来。 【指令】: 为了抓取需要的文件列表,可以使用ll *|grep ‘标识字符’ [jackey@fnode1 jacoxu]$ ll * -h|grep Prec -rw-rw-r– 1 jackey jackey 543K Nov 9 19:11 0-0-4-3-4-2-0-0-4-2-0-0-4-10-0-0-Prec-0.57372 -rw-rw-r– 1 jackey jackey 544K Nov 9 22:33 0-0-4-3-4-2-0-0-4-2-0-0-4-10-0-1-Prec-0.57364 -rw-rw-r– 1 jackey jackey 543K Nov 10 01:55 0-0-4-3-4-2-0-0-4-2-0-0-4-10-1-0-Prec-0.58598 -rw-rw-r– 1 … 继续阅读

Matlab版LibSVM定义线性核和高斯核的使用方法

(1)如何采用线性核? matlab> % Linear Kernel matlab> model_linear = svmtrain(train_label, train_data, ‘-t 0′);  严格讲,线性核也要像高斯核一样调整c这个参数,Libing wang讲一般C=1效果比较好,可能调整效果差异不大,当然要看具体的数据集。c大,从SVM目标函数可以看出,c越大,相当于惩罚松弛变量,希望松弛变量接近0,即都趋向于对训练集全分对的情况,这样对训练集测试时准确率很高,但推广能力未必好,即在测试集上未必好。c小点,相当于边界的有些点容许分错,将他们当成噪声点,这样外推能力比较好。 (2)如何采用高斯核? matlab> load heart_scale.mat matlab> model = svmtrain(heart_scale_label, heart_scale_inst, ‘-c 1 -g 0.07′); 参考:http://www.cppblog.com/guijie/archive/2012/03/26/169034.html

nohup启动程序后如何获取进程号Pid

【需求背景】:在Linux上执行一个Matlab程序,多个用户在同一个账号下同时启动了多个Matlab程序。运行一段时间后 如果想终止其中的某个进行 需要kill掉,但是kill掉哪一个呢?利用Top指令显示的结果是: PID USER … COMMAND 6853 jackey   …  /media/workOne/matlab/bin/glnxa64/MATLAB 通过COMMAND已经服务区分多个进程了,因而我们需要在启动进程时打出此进程号。比较笨的方法是自己拿纸笔来记录了,哈哈,执行nohup后会在终端输出给你的。而自动输出方法是什么呢?nohup后显示的pid既不是标准输出也不是标准错误输出,无论用2>还是1>都是无法获取的。那么我们可以通过另外一种方法进行记录:利用$!创建进程号的文件。 直接上示例(run.sh): #!/bin/sh ls test_jacoxu-* | (while read line; do echo “Start to run the matlab file:”${line} nohup ../matlab.ln <$line> $(date ‘+%Y-%m-%d_%H-%M-%S’)${line}.out& touch $!”.pid” done) 通过touch $!”.pid”就可以输出以当前进程号命名的文件啦.pid ======================== … 继续阅读

Shell-vi替换指定文件中的内容-自动修改SolrLRU

【需求】:利用Shell脚本替换指定文件中的一段数字内容,需要进行模糊匹配。 【具体场景】:自动修改Solr下的LRU参数,并自动重启检索服务 #!/bin/bash    #auther:Jacob Xu 20141102, create for up LRU parameter of Solr    echo “====================== set the configure for solr! ====================”   solrPath=/var/solr/apache-tomcat-7.0.39_ubuntu_29.2_analysis_7080/    echo “solrPath=”$solrPath   newLRU_Num=250    echo “newLRU_Num=”$newLRU_Num      ################## configure solr.xml for solr!###################    rawSolrHome_norm=$solrPath“webapps/analysisNorm001/solrHome/”   rawSolrHome_spam=$solrPath“webapps/analysisSpam001/solrHome/”      ##################################################################    if [ -d "/var/solr/apache-tomcat-7.0.39_ubuntu_29.2_analysis_7080" ]     then            echo “begin to shutdown solr …”           echo $solrPath“bin/shutdown.sh”           bash $solrPath“bin/shutdown.sh”           sleepTime=20            for((;sleepTime>0;sleepTime–))            do                   printf “\rplease waiting ${sleepTime} seconds…”                   sleep 1s            done            kill -9 $(pgrep ${solrPath} -f)    … 继续阅读