如何在主窗口中定义矩阵.cpp C++

how to define matrix in mainwindow.cpp c++

本文关键字:cpp C++ 定义 窗口      更新时间:2023-10-16
 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返回一个矩阵,所以我必须将幽灵定义为矩阵。我试图创造struct matrix...但没有任何改变。

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

第二个错误可能是(您没有提供AD_test::test(..)的真正签名(,因为spectre是一个MainWindow::Matrix*并且您再次获取它的地址导致MainWindow::Matrix**,而它很可能需要MainWindow::Matrix*,因此修复第一个问题也应该解决这个问题。