这次,我需要进行c#与MATLAB2012混编,建立的模型是附有限制条件的间接平差。刚开始,我还是充满信心的,毕竟可以依照师姐的步骤。然而,事实是残忍的,让我不断的调试代码,摸索稀疏矩阵的真正用处。代码的框架写好,一运行发现各种bug!记得一个bug是内存不足!当时,我就疑惑,为何同样的数据量,师姐的代码可以运行,甚至更大的数据量,也可以照常运行。然而,我的各种提示,内存不足。好的吧!我就开始改虚拟内存,心想这次应该可以了。事实上,并非没有解决成功!偶然之中,我发现问题是我吧平常的矩阵与稀疏矩阵一起使用了,即sparse与full的混淆,导致内存不足。
稀疏矩阵与普通矩阵,不能一起使用。因为使用稀疏矩阵的目的在于减少内存的使用率和提高运行的时间,而使用普通矩阵,也就是全矩阵(full),内存占用率高,甚至出现内存不足与代码运行时间久。因此,两者无法联合使用。
稀疏矩阵的创建:
1.sparse(a)
a为一个常规矩阵,即a=[0,2,3;4,5,0]
2.sparse(m,n)
mn分别是行列数,创建mn的零稀疏矩阵
3 .稀疏矩阵的串联(也就是合并)
首先,利用find函数