1
我想在矩陣Compressed Column Storage中乘以矩陣和向量。該矩陣是:矩陣向量乘法CCS C++
0 3 0
4 0 0
2 0 0
這裏是CCS形式:
[ 4 2 3 ]
[ 2 3 1 ]
[ 1 3 4 4 ]
的載體是:
[ 1 3 4 ]
所以產品應該是
[ 9 4 2 ]
這裏是函數我正在嘗試創建
vector<int> multiply(vector<int> val,vector<int> col,vector<int> row,vector<int> v, int r){
vector<int> x(v.size());
for (int j=0; j<r; j++) {
for (int i=col[j]-1; i<col[j+1]-1; i++) {
cout<<"\n"<<val[i]<<"*"<<v[j]<<"\n";
x[j]+= val[i]*v[j];
}
}
return x;
}
但這返回
[ 6 9 0 ]
這是我已經得到了真正的解決方案最接近的,我怎麼能解決這個問題?
首先,在調試器中逐行執行代碼。如果這樣做沒有幫助,那麼您可以嘗試創建一個[最小,完整和可驗證的示例](http://stackoverflow.com/help/mcve),包括向我們展示如何初始化傳遞給函數和實際調用?還包括您*整個*程序的預期和實際輸出。 –
我在終端中運行程序,所以我不知道如何使用調試器 – user906357
如果您在Linux(或使用Cygwin或MinGW的Windows)上,請使用[GDB](https://www.gnu。 org/software/gdb /),你是在OSX上,然後使用[LLDB](http://lldb.llvm.org/)。這些是IDE使用的實際調試器,它們也可以在命令行模式下使用。學習如何使用調試器,命令行或集成到IDE中,對開發人員非常重要。調試程序很困難,特別是嵌套循環或遞歸,但編程不容易,調試是一項關鍵技能。 –