C+中的Matlab矩阵+; 我是一个新手程序员,试图把MATLAB代码翻译成嵌入式系统的C++。我的问题是:我能用一种更优雅的方式写下这些特殊的矩阵,然后再将它们相乘吗?我应该改用向量吗?(我不太熟悉它们的语法) #包括 #包括 使用名称
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上循环?这是一个非常奇怪的设置。如果您不知道为什么,请执行代码演练。然后手动展开循环并执
#包括
#包括
使用名称空间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;
}