如何在mainwindow.cpp c ++中定义矩阵

时间:2015-03-25 10:14:01

标签: c++ qt matrix

 spectre=spectrum->dft(uhd_samples,Ndft,noise_power);
    bool conclusion=stat->test(noise_power,&spectre,Ndft,lambda,Nsamples);

我在qt创建者中遇到了2个错误:

/home/hoss/cdf/mainwindow.cpp:45: error: cannot convert 'Matrix {aka std::vector<std::vector<float> >}' to 'MainWindow::Matrix*' in assignment
         spectre=spectrum->dft(uhd_samples,Ndft,noise_power);

/home/hoss/cdf/mainwindow.cpp:46: error: no matching function for call to 'AD_test::test(float&, MainWindow::Matrix**, int&, float&, int&)'
         bool conclusion=stat->test(noise_power,&spectre,Ndft,lambda,Nsamples);
                                                                             ^

dft返回一个矩阵,所以我必须将specter定义为矩阵。我试图创建struct matrix ......但没有任何改变。

1 个答案:

答案 0 :(得分:0)

第一个错误是因为您正在尝试为指针赋值。当dft(..)返回一个值时,您应该更改spectre变量以存储它的副本。同样不清楚MatrixMainWindow::Matrix是否属于同一类型 - 它们需要成功分配(或者至少可以隐式兑换)。

第二个错误可能是(您还没有提供AD_test::test(..)的真实签名),因为spectreMainWindow::Matrix*而您正在接收地址它再次产生MainWindow::Matrix**,当它很可能需要MainWindow::Matrix*时,因此修复第一个问题也应该解决这个问题。