线性代数-矩阵-【3】矩阵加减 C和C++实现
点击这里可以跳转至
【1】矩阵汇总:http://www.cnblogs.com/HongYi-Liang/p/7287369.html
【2】矩阵生成:http://www.cnblogs.com/HongYi-Liang/p/7275278.html
【3】矩阵加减:现在的位置
【4】矩阵点乘:http://www.cnblogs.com/HongYi-Liang/p/7287324.html
【5】矩阵化简:http://www.cnblogs.com/HongYi-Liang/p/7464850.html
C++语言:
原理解析:
本节介绍矩阵与矩阵间的加法和减法,两个行列数相同的矩阵相加,把的矩阵对应的元素分别相加 。两个行列数相等矩阵相减,把矩阵的对应元素分别相减。

A+B=

矩阵加法:
首先需要判断矩阵是否行列数相等,在计算中,由于存放矩阵m_vecMatrix我们使用的是二维vector,所以我们需要:
- 判断合法性
- 把两个矩阵的第i行元素提取出来
- 把两个矩阵中此行的第j个元素提取并相加,推入一个临时向量tempVec中,
- 通过addOneRowToBack()函数将tempVec加入目标向量的m_vecMatrix(矩阵数据区)中
template <typename T>
Matrix<T> Matrix<T>::operator+(Matrix<T> &matrix) //运算符重载“+”为矩阵加法
{
/*matrix leagality check*/
if(this->m_iRows != matrix.getRows() || this->m_iColumns != matrix.getColumns())
{
return *this;
} Matrix<T> outputMatrix;
vector<T> tempVec;
for(int i=;i<this->m_iRows;i++)
{
tempVec.clear();
for(int j=;j<this->m_iColumns;j++)
{
tempVec.push_back(this->m_vecMatrix[i][j] + matrix.m_vecMatrix[i][j]);
}
outputMatrix.addOneRowToBack(tempVec);
} return outputMatrix;
}
矩阵减法:
矩阵减法与加法类似,我们只需要将上述过程赋值一遍,把"+"改为“-”。
template <typename T>
Matrix<T> Matrix<T>::operator-(Matrix<T> &matrix) //运算符重载“-”为矩阵减法
{
/*matrix leagality check*/
if(this->m_iRows != matrix.getRows() || this->m_iColumns != matrix.getColumns())
{
return *this;
} Matrix<T> outputMatrix;
vector<T> tempVec;
for(int i=;i<this->m_iRows;i++)
{
tempVec.clear();
for(int j=;j<this->m_iColumns;j++)
{
tempVec.push_back(this->m_vecMatrix[i][j] - matrix.m_vecMatrix[i][j]);
}
outputMatrix.addOneRowToBack(tempVec);
} return outputMatrix;
}
C语言:
线性代数-矩阵-【3】矩阵加减 C和C++实现的更多相关文章
- 【线性代数】2-4:矩阵操作(Matrix Operations)
title: [线性代数]2-4:矩阵操作(Matrix Operations) toc: true categories: Mathematic Linear Algebra date: 2017- ...
- 矩阵乘法&&矩阵快速幂&&最基本的矩阵模型——斐波那契数列
矩阵,一个神奇又令人崩溃的东西,常常用来优化序列递推 在百度百科中,矩阵的定义: 在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合 ,最早来自于方程组的系数及常数所构成的方阵.这一 ...
- JavaScript 加减危机——为什么会出现这样的结果?
在日常工作计算中,我们如履薄冰,但是 JavaScript 总能给我们这样那样的 surprise~ 0.1 + 0.2 = ? 1 - 0.9 = ? 如果小伙伴给出内心的结果: 0.1 + 0.2 ...
- Android带加减的edittext
看了网上这样自带加减的edittext写得好复杂,还有各种监听事件,我觉得没有必有.于是我自己写了一个. 我这个edittext仅仅限制整数,每次加减1. public class TestEditT ...
- js实现输入框数量加减【转】
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 自己动手丰衣足食之 jQuery 数量加减插件
引言 做一个手机端的订单相关项目中,其中下订单时需要用到数量加减的控件,可以设置默认值,也可以设置最大值和最小值.使用jQuery这么长时间了,平时很少去编写属于自己的插件,现在编写的时候对立面的一些 ...
- php 时间加减
<?php date_default_timezone_set('PRC'); //默认时区 echo "今天:",date("Y-m-d",time() ...
- freemarker 数据做加减计算
controller的部分: @Controller@RequestMapping("/ContactsFrameIndex")public class ContactsFrame ...
- Oracle中的日期加减
加法 select sysdate,add_months(sysdate,12) from dual; --加1年 select sysdate,add_months(sysdate ...
随机推荐
- LeetCode-Minimum Path Sum[dp]
Minimum Path Sum Given a m x n grid filled with non-negative numbers, find a path from top left to b ...
- Spring源码情操陶冶-ContextLoaderListener
前言:通过实例结合源码的方式解读,其中涉及到的文件来自于博主的Github毕设项目wxServer Note: Springboot应用不在本文章讨论范围 web.xml中启用Spring 在一般的w ...
- 【HTML】html5新属性-datalist
摘要: 为实现输入域自动填充的效果 方法一: jquery-ui的autocomplete方法, 不是jquery 自带的方法. 方法二: 采用html5新特性,datalist,例子如下:坏处很明显 ...
- MVC 路由设置伪静态
public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/ ...
- hash冲突随笔
一:hash表 也叫散列表,以key-value的形式存储数据,就是将需要存储的关键码值通过hash函数映射到表中的位置,可加快访问速度. 二:hash冲突 如果两个相同的关键码值通过hash函数映射 ...
- 终结 finalize()和垃圾回收(garbage collection)
1.为什么要有finalize()方法? 假定你的对象(并非使用new)获得了一块"特殊"的内存区域,由于垃圾回收器只知道释放那些经由new分配的内存,所以他不知道该如何释放该对象 ...
- 电脑只能上QQ,不能上网浏览网站怎么解决
这个问题通常是因为网络的DNS解析出错引起的.QQ一类的聊天软件有自动的网络解析,不需要DNS便可以使用,而一般的浏览器是需要DNS解析来访问网页的.所谓DNS,即域名服务器(Domain Name ...
- opencv3+版本感觉还是不稳定啊
opencv3+版本感觉还是不稳定啊,还是安装opencv2的版本比较好.特征匹配需要下载额外的库,但是camke的时候就是有错误....也是醉了,折磨的我死去活来的两三天了. 现在是opencv3. ...
- kafka在windows下的安装和配置
博主最近在学习有关kafka的配置安装以及在spring的集成使用.但网上关于kafka的配置参考资料基本都是于linux下的配置,于是博主在整理了相关windows下kafka的配置记录在博客里.由 ...
- rpmrebuild备份glibc
任务: 备份已安装的glibc为RPM包,还原. 准备: 下载rpmrebuild 上传至服务器 链接: https://pan.baidu.com/s/1pKNGnur 密码: wgy9 操作: 1 ...