7
11
2013
2

“当前不会命中断点 还没有为该文档加载任何符号” 的解决方案

今天修改OpenCV库,然后重新编译,再调用新编译好的dll,发现不能进入修改后的程序,加入断点会显示警告:“当前不会名字断点 还没有为该文档加载任何符号

原因在于,程序调用的dll没有成功地和修改后的程序相匹配。

解决方案是:

Step 1: 将调用该项目的exe复制到编译生成的dll目录下(非常重要!)

Step 2: 在编译OpenCV的解决方案下,选择对应的项目,(比如我的是cv_objdetect),右键,属性——配置属性——调试

在“命令”里加入调用该项目生成的dll的exe(与dll同目录)

在“工作目录”中设置生成的dll所在的目录

命令参数按照需要设定

Step 3: 在项目中点击右键,调试——进入单步调试,即可解决问题。

Category: C/C++ | Tags: VS调试
3
14
2013
1

matlab cov()得到的协方差矩阵不是正定矩阵怎么办

实验中,matlab用cov()得到协方差矩阵,这个矩阵作为多维高斯分布的gamma参数,结果gamma参数要求该矩阵为正定矩阵,而该矩阵只能保证为对称矩阵。http://stackoverflow.com/questions/11269715/matlabs-sigma-must-be-symmetric-and-positive-definite-error-sometimes-not-mak

给出了解决方案

This happens if the diagonal values of the covariance matrix are (very close to) zero. A simple fix is add a very small constant number to c.

err_cnt = 0;

for i = 1:1000
    try 
        a = rand(3); 
        c = cov(a) + .0001 * eye(3); 
        m = mean(a); 
        mvnpdf(a, m, c);
    catch me
        err_cnt = err_cnt + 1;
    end
end

Results in 0 errors.

Category: C/C++ | Tags:
12
26
2012
3

从libsvm开始谈起

第一次接触libsvm,是在今年春节的时候,参加数模美赛,当时在并不太熟悉libsvm的情况下,一边参考着网上的libsvm教程,一边依照着自己的理解,利用libsvm进行了三维特征向量空间的分类,并按照自己的思考加简单测试写的决策函数,类似于http://www.matlabsky.com/thread-12649-1-1.html#346396-tsina-1-5117-284f7ead64dc6d44826e34b59e8e7b01 ,现在回想起来,当时还是用线性核的决策函数去处理RBF生成的model,或许是维度太低,(我们对数据预处理时将其降低了15维),美赛的时候分类结果很不错,由此也导致我一直以为此种做法的正确性。

 

Category: C/C++ | Tags: libsvm
7
13
2011
40

提高lingo程序运行效率的方法

lingo运行效率是每个建模人都必须关注的问题,选择不当将造成非常terrible的效果,例如今天老师演示了一个lingo程序,运行了半个多小时,即将下课,尚未出结果,究其原因,在于有一个约束函数为间断且非单调的,将其进行改善,化为了连续且严格单调的函数,结果运行效率大大提高,仅仅四分钟就完成了求解(参照文章谈数学建模活动的开展与高等数学的教学),由此,我收集归纳总结出了lingo的几种加快运行效率的方法,希望可以对大家有帮助:


需要特别注意的是,下面的转化都必须要在满足对结果无影响或者说影响可以忽略的情况下:

一、如上例所示,化间断的、非单调的函数为光滑严格单调的函数

二、化整数约束或整数变量为实数型,这个原因是取决于lingo处理数据的方法

三、化非线性规划为线性规划,如x/y<10可化为x<10.0*y,原因大家懂的

四、给出变量的初始值,这样一般情况下lingo寻找最优解得迭代步数会大大减小,其运行效率自然快速提升

| Theme: Aeros 2.0 by TheBuckmaker.com