1.二维vector变二维数组
<pre name="code" class="cpp"><span style="font-size:18px;">vector<vector<double> > Num(m);
for(int i=0;i <m;i++)
Num[i].resize(n);</span>
经过这样的变化,成为m*n矩阵,可以对其进行相关的数组操作;
2二维数组的转置问题
<span style="font-size:18px;"> for(int i=0;i <m;i++)
for(int j=0;j <n;j++)
Num[i][j]=SampleMatrix[j][i]; //转置</span>
3vector<vector<>>的初始化
<pre name="code" class="cpp"><span style="font-size:18px;">//用两个矩阵拼接对</span><span style="font-size:18px;">vector<vector<>>的初始化;</span>
for (int i=0;i<nItr;i++)
{
vector<double> objTemp = vParams[i];
for (int n=0;n<nvObjs;n++)
{
objTemp.push_back(vOutputs[i][n]);
}
SampleM.push_back(objTemp);
}
//push_back的用法
<pre name="code" class="cpp"> for(int i=0;i<m;i++)
{
<pre name="code" class="cpp"><pre name="code" class="cpp"> float temp=0;
for(int j=0;j<n;j++)
{
temp+=Num[i][j];
SumX.push_back(temp);}
}
}
总之不论二维数组还是vector<vector<>>的操作,核心思想就是"转化",高维向低维转化;另外注意学习push_back的用法
这次主因素分析代码的集成,由于对上述基本算法和源代码的数据结构的不清楚花费了很多时间,深深体悟基础不牢地动山摇,写于此以自勉!