实现两个N*N矩阵的乘法,矩阵由一维数组表示
实现两个N*N矩阵的乘法,矩阵由一维数组表示。
先介绍一下矩阵的加法:
void Add(int rows, int cols)
{
for(int i= ;i<rows;i++)
{
for(int j=;j<cols;j++)
result[i][j]=mat1[i][j]+mat2[i][j];
}
}
若两个矩阵要做乘法运:只有在一个矩阵的行数与另一个矩阵的列数相同时,才能做两个矩阵的乘法。
如何得到矩阵的转置:
矩阵的转置也是一个矩阵,原始矩阵中的行转变为转置矩阵的列。例如,有下述一个3×3矩阵:
1 2 3
6 7 8
4 5 9
那么它的转置矩阵为:
1 6 4
2 7 5
3 8 9
让我们从程序员的角度仔细地考察一下这一现象。假设原始数组为M,转置矩阵为MT。那么M[1][0]=6,在转置矩阵中我们发现MT [0][1]=6。因此,我们能够得到程序化的结论:转置一个矩阵实际上就是对换下标变量。用技术术语讲:
- MT[Row][Column] = M[Column][Row];
下面是得到转置矩阵的C代码:
- void show_transpose(float mat[][10],int row,int col)
- {
- int i,j;
- for(i=0;i<row;i++)
- {
- for(j=0;j<col;j++)
- printf("%f\t",mat[j][i]);
- printf("\n");
- }
- }
这个方法显示了矩阵的转置。
- #include<iostream>
- using namespace std;
- #define size 2
- int multi(int *a , int *b , int N)
- {
- int i , j , k , temp;
- int *c = (int*)malloc(N * N);
- for(i = 0 ; i < N ; i++)
- {
- for(j = 0 ; j < N ; j++)
- {
- temp = i * N + j;
- *(c + temp) = 0;
- for(k = 0 ; k < N ; k++)
- {
- *(c + temp) += a[i * N + k] * b[k * N + j];
- }
- cout<<*(c + temp)<<" ";
- }
- }
- return *c;
- }
- int main()
- {
- int a[size * size] = {2 , 1 , 4 , 3};
- int b[size * size] = {1 , -1 , 3 , 2};
- multi(a , b , size);
- return 0;
- }
实现两个N*N矩阵的乘法,矩阵由一维数组表示的更多相关文章
- POJ1260 Pearls(dp,矩阵链乘法)
题目链接. 题目大意: 给定一个n,和两个序列a[i], p[i]. a[i] 表示需要购买 i品质 的数量,p[i] i 等级的价格. 1.每个品质都会有不同的价格,价格依据品质上升而上升 2.买一 ...
- Algorithm --> 矩阵链乘法
动态规划--矩阵链乘法 1.矩阵乘法 Note:只有当矩阵A的列数与矩阵B的行数相等时A×B才有意义.一个m×r的矩阵A左乘一个r×n的矩阵B,会得到一个m×n的矩阵C. #include ...
- CODEVS 3546 矩阵链乘法
http://codevs.cn/problem/3546/ 题目 给定有n个要相乘的矩阵构成的序列(链)<A1,A2,A3,.......,An>,要计算乘积A1A2.....An.一组 ...
- 矩阵乘法&&矩阵快速幂&&最基本的矩阵模型——斐波那契数列
矩阵,一个神奇又令人崩溃的东西,常常用来优化序列递推 在百度百科中,矩阵的定义: 在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合 ,最早来自于方程组的系数及常数所构成的方阵.这一 ...
- hdu 1757 A Simple Math Problem (乘法矩阵)
A Simple Math Problem Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- C语言 矩阵的转置及矩阵的乘法
C语言 矩阵的转置及矩阵的乘法 //凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1.矩阵的转置 #include<stdio.h> #defi ...
- 螺旋填数:读入两个整数m,n,输出一个m行n列的矩阵,这个矩阵是1~m*n这些自然数按照右、下、左、上螺旋填入的结果。
package Day8_06; /*读入两个整数m,n,输出一个m行n列的矩阵,这个矩阵是1~m*n这些自然数按照右.下.左.上螺旋填入的结果. * 例如读入数字4,5,则输出结果为: * 1 2 ...
- poj3233 题解 矩阵乘法 矩阵快速幂
题意:求S = A + A2 + A3 + … + Ak.(mod m) 这道题很明显可以用矩阵乘法,但是这道题的矩阵是分块矩阵, 分块矩阵概念如下:当一个矩阵A中的单位元素aij不是一个数值而是一个 ...
- MCM(矩阵链乘法)
这是<算法导论>动态规划中的一个问题.问题简述如下:我们在求解矩阵相乘时通常会有一个最优括号方案来对矩阵进行顺序相乘,这样会减少大量的计算时间. 我们知道矩阵A.B相乘,只能是当矩阵A的列 ...
随机推荐
- iOS开发--Bison详解连连支付集成简书
"最近由于公司项目需要集成连连支付,文档写的不是很清楚,遇到了一些坑,因此记录一下,希望能帮到有需要的人." 前面简单的集成没有遇到什么坑,在此整理一下官方的集成文档,具体步骤如下 ...
- iOS开发--storyboard适配pin
- JavaPersistenceWithHibernate第二版笔记-第五章-Mapping value types-001Mapping basic properties(@Basic、@Access、access="noop"、@Formula、@ColumnTransformer、@Generated、 @ColumnDefaul、@Temporal、@Enumerated)
一.简介 在JPA中,默认所有属性都会persist,属性要属于以下3种情况,Hibernate在启动时会报错 1.java基本类型或包装类 2.有注解 @Embedded 3.有实现java.io. ...
- JavaWeb项目开发案例精粹-第4章博客网站系统-003Dao层
1. package com.sanqing.dao; import java.util.List; import com.sanqing.fenye.Page; import com.sanqing ...
- MCU晶体旁边电容的作用及振荡电路的分析
绝大多数的MCU爱好者对MCU晶体两边要接一个22pF附近的电容不理解,因为这个电容有些时候是可以不要的.参考很多书籍,讲解的很少,往往提到最多的是起稳定作用,负载电容之类的话,都不是很深入理论的分析 ...
- 针对安卓java入门:方法的使用
[修饰符]返回值类型 方法名 (形式参数表){ 程序代码; return 返回值; } 例子: public class Test { //方法一 public static void printIn ...
- VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)
VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)-软件开发-鸡啄米 http://www.jizhuomi.com/software/141.html 上一讲中讲了VS20 ...
- MAVEN ERROR: unable to find valid certification path to requested target 解决办法
第一次使用MAVEN编译项目,出现如下错误 解决办法:Maven的setting.xml中添加如下代码 <mirrors> <mirror> <id>Central ...
- Android百度地图开发03之地图控制 + 定位
前两篇关于百度地图的blog写的是,一些基本图层的展示 和 覆盖物的添加+地理编码和反地理编码. 接下来,这篇blog主要说一些关于地图控制方面的内容和定位功能. 百度地图提供的关于地图的操作主要有: ...
- 自适应高度的 textarea
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...