C++:输入两个矩阵,输出两个矩阵的成句
5个回答
推荐于2017-08-16
展开全部
你这个语法有问题,应该这样写:CvMat* A = cvCreateMat(3,3,CV_32FC1);
这代表你声明了一个叫A的矩阵,后面的CV_32FC1代表矩阵的数据类型,32位浮点1通道矩阵。初始化方法有多种,可以用一个数组初始化,也可以一个一个用cvmSet方法填进去。下面是个例子:
double a[] = { 1, 2, 3, 4,5, 6, 7, 8,9, 10, 11, 12 };
double b[] = { 1,2,3,4,5,6,7,8,9,10,11,12 };
double c[9];
CvMat Ma, Mb, Mc ;
cvInitMatHeader( &Ma, 3, 4, CV_64FC1, a );//初始化
cvInitMatHeader( &Mb, 4, 3, CV_64FC1, b );
cvInitMatHeader( &Mc, 3, 3, CV_64FC1, c );
cvMatMulAdd( &Ma, &Mb, 0, &Mc );
这代表你声明了一个叫A的矩阵,后面的CV_32FC1代表矩阵的数据类型,32位浮点1通道矩阵。初始化方法有多种,可以用一个数组初始化,也可以一个一个用cvmSet方法填进去。下面是个例子:
double a[] = { 1, 2, 3, 4,5, 6, 7, 8,9, 10, 11, 12 };
double b[] = { 1,2,3,4,5,6,7,8,9,10,11,12 };
double c[9];
CvMat Ma, Mb, Mc ;
cvInitMatHeader( &Ma, 3, 4, CV_64FC1, a );//初始化
cvInitMatHeader( &Mb, 4, 3, CV_64FC1, b );
cvInitMatHeader( &Mc, 3, 3, CV_64FC1, c );
cvMatMulAdd( &Ma, &Mb, 0, &Mc );
展开全部
#include<iostream>
using namespace std;
int main()
{
int a[2][3]={1,2,3,4,5,6};
int b[3][2]={1,2,3,4,5,6};
int c[2][2];
int i,j;
cout << "矩阵A:"<<endl;
for(i=0;i<2;i++){
for(j=0;j<3;j++)
{
cout << a[i][j] << " ";
}
cout << endl;
}
cout << "矩阵B:"<<endl;
for(i=0;i<3;i++){
for(j=0;j<2;j++)
{
cout << b[i][j] << " ";
}
cout << endl;
}
cout << "A*B="<< endl;
int k;
int sum;
for(i=0;i<2;i++){//A的每一行
for(j=0;j<2;j++){//B的每一列
int sum = 0;
for(k=0;k<3;k++){//k为A的列数和B的行数
sum = a[i][k]*b[k][j];
}
c[i][j]=sum;
}
}
for(i=0;i<2;i++){
for(j=0;j<2;j++)
{
cout << c[i][j] << " ";
}
cout << endl;
}
cin.get();
return 0;
}
using namespace std;
int main()
{
int a[2][3]={1,2,3,4,5,6};
int b[3][2]={1,2,3,4,5,6};
int c[2][2];
int i,j;
cout << "矩阵A:"<<endl;
for(i=0;i<2;i++){
for(j=0;j<3;j++)
{
cout << a[i][j] << " ";
}
cout << endl;
}
cout << "矩阵B:"<<endl;
for(i=0;i<3;i++){
for(j=0;j<2;j++)
{
cout << b[i][j] << " ";
}
cout << endl;
}
cout << "A*B="<< endl;
int k;
int sum;
for(i=0;i<2;i++){//A的每一行
for(j=0;j<2;j++){//B的每一列
int sum = 0;
for(k=0;k<3;k++){//k为A的列数和B的行数
sum = a[i][k]*b[k][j];
}
c[i][j]=sum;
}
}
for(i=0;i<2;i++){
for(j=0;j<2;j++)
{
cout << c[i][j] << " ";
}
cout << endl;
}
cin.get();
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-07-03
展开全部
这个什么意思?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个什么意思?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个什么意思?
追问
乘积
追答
#include<iostream>
using namespace std;
int main()
{
int a[2][3]={1,2,3,4,5,6};
int b[3][2]={1,2,3,4,5,6};
int c[2][2];
int i,j;
cout << "矩阵A:"<<endl;
for(i=0;i<2;i++){
for(j=0;j<3;j++)
{
cout << a[i][j] << " ";
}
cout << endl;
}
cout << "矩阵B:"<<endl;
for(i=0;i<3;i++){
for(j=0;j<2;j++)
{
cout << b[i][j] << " ";
}
cout << endl;
}
cout << "A*B="<< endl;
int k;
int sum;
for(i=0;i<2;i++){//A的每一行
for(j=0;j<2;j++){//B的每一列
int sum = 0;
for(k=0;k<3;k++){//k为A的列数和B的行数
sum = a[i][k]*b[k][j];
}
c[i][j]=sum;
}
}
for(i=0;i<2;i++){
for(j=0;j<2;j++)
{
cout << c[i][j] << " ";
}
cout << endl;
}
cin.get();
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询