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
......但没有任何改变。
答案 0 :(得分:0)
第一个错误是因为您正在尝试为指针赋值。当dft(..)
返回一个值时,您应该更改spectre
变量以存储它的副本。同样不清楚Matrix
和MainWindow::Matrix
是否属于同一类型 - 它们需要成功分配(或者至少可以隐式兑换)。
第二个错误可能是(您还没有提供AD_test::test(..)
的真实签名),因为spectre
是MainWindow::Matrix*
而您正在接收地址它再次产生MainWindow::Matrix**
,当它很可能需要MainWindow::Matrix*
时,因此修复第一个问题也应该解决这个问题。