C++:输入两个矩阵,输出两个矩阵的成句

 我来答
匿名用户
推荐于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 );
我是一小小鱼蝶
2017-08-15
知道答主
回答量:14
采纳率:0%
帮助的人:2.8万
展开全部
#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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2017-07-03
展开全部
这个什么意思?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
垣塘守葬唯2W
2017-07-02 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:164
采纳率:64%
帮助的人:31.5万
展开全部
这个什么意思?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友fc027fc
2015-02-24 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3160
采纳率:83%
帮助的人:792万
展开全部
这个什么意思?
追问
乘积
追答
#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;
}

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式