C+中的Matlab矩阵+; 我是一个新手程序员,试图把MATLAB代码翻译成嵌入式系统的C++。我的问题是:我能用一种更优雅的方式写下这些特殊的矩阵,然后再将它们相乘吗?我应该改用向量吗?(我不太熟悉它们的语法) #包括 #包括 使用名称

C+中的Matlab矩阵+; 我是一个新手程序员,试图把MATLAB代码翻译成嵌入式系统的C++。我的问题是:我能用一种更优雅的方式写下这些特殊的矩阵,然后再将它们相乘吗?我应该改用向量吗?(我不太熟悉它们的语法) #包括 #包括 使用名称,c++,C++,C+中的Matlab矩阵+; 我是一个新手程序员,试图把MATLAB代码翻译成嵌入式系统的C++。我的问题是:我能用一种更优雅的方式写下这些特殊的矩阵,然后再将它们相乘吗?我应该改用向量吗?(我不太熟悉它们的语法) #包括 #包括 使用名称空间std; int main(){ 双矩阵x[10][6]={0.0}; 双频{0.01}; 对于(size_t i{0};i,您认为使用什么?为什么在j上循环?这是一个非常奇怪的设置。如果您不知道为什么,请执行代码演练。然后手动展开循环并执

C+中的Matlab矩阵+; 我是一个新手程序员,试图把MATLAB代码翻译成嵌入式系统的C++。我的问题是:我能用一种更优雅的方式写下这些特殊的矩阵,然后再将它们相乘吗?我应该改用向量吗?(我不太熟悉它们的语法)

#包括
#包括
使用名称空间std;
int main(){
双矩阵x[10][6]={0.0};
双频{0.01};

对于(size_t i{0};i,您认为使用什么?为什么在
j
上循环?这是一个非常奇怪的设置。如果您不知道为什么,请执行代码演练。然后手动展开循环并执行另一个演练。(展开此循环:将
for
行替换为
j
的初始化,然后重复循环主体6或10次,在副本之间增加
j
。)展开版本中有多少死代码?至于“更优雅”,作业的正确工具取决于作业,这里没有太多的上下文。这些是常数矩阵吗?它们的值永远不会改变,可以在编译时固定?
#include <iostream>
#include <cmath>

using namespace std; 

int main() {

    double matrixF [10][6] = {0.0};
    double freq {0.01};
    for(size_t i{0};i<10;++i){
            for(size_t j{0}; j<6;j++){
                if(j == 0) 
                    matrixF[i][j] = cos(2*M_PI*freq*i);  
                else if(j == 1) 
                    matrixF[i][j] = sin(2*M_PI*freq*i);
                else if(j == 2) 
                    matrixF[i][j] = cos(4*M_PI*freq*i);
                else if(j == 3) 
                   matrixF[i][j] = sin(4*M_PI*freq*i); 
                else if(j == 4) 
                   matrixF[i][j] = cos(6*M_PI*freq*i); 
                else if(j == 5)
                   matrixF[i][j] = sin(6*M_PI*freq*i); 
                }
    }      

    cout << "Displaying the matrix: " << endl;
    for (size_t i{0}; i<10;++i){
        for (size_t j{0}; j<6; ++j) {
            cout << matrixF[i][j] << " ";
        }
            cout << endl;
    }


    double matrixT [6][10] = {0.0};
        for (size_t i{0}; i<6; i++){
            for(size_t j{0}; j<10; j++){
                 if(i == 0) 
                    matrixT[i][j] = cos(2*M_PI*freq*j);  
                else if(i == 1) 
                    matrixT[i][j] = sin(2*M_PI*freq*j);
                else if(i == 2) 
                    matrixT[i][j] = cos(4*M_PI*freq*j);
                else if(i == 3) 
                   matrixT[i][j] = sin(4*M_PI*freq*j); 
                else if(i == 4) 
                   matrixT[i][j] = cos(6*M_PI*freq*j); 
                else if(i == 5)
                   matrixT[i][j] = sin(6*M_PI*freq*j); 
                }
    }

    cout << "Displaying the transpose Matrix: " << endl;
    for (size_t i{0}; i<6;++i){
        for (size_t j{0}; j<10; ++j) {
            cout << matrixT[i][j] << " ";
        }
            cout << endl;
    }