线性代数 对了解矩阵、线性变换的本质有太大帮助如果不熟悉线性代数的概念,要去学习自然科学,现在看来就和文盲差不多。”,然而“按照现行的国际标准,线性代数是通过公理化来表述的,它是第二代数学模型,这就带来了教学上的困难。” * 矩阵究竟是什么东西?向量可以被认为是具有n个相互独立的性质(维度)的对象的表示,矩阵又是什么呢?我们如果认为矩阵是一组列(行)向量组成的新的复合向量的展开式,那么为什么这种展开
opencv 函数备忘 1. Mat src = imread("1.jpg");2. imshow("name", mat);3. imwrite("name" , mat, compression_param);4. Mat imageROI = image(Rect(800 , 350, logo.cols, logo.rows)); //存储 感兴趣部分5. addWeighted
矩阵 乘法 1. 矩阵乘法:作者:阿狸链接:https://www.zhihu.com/question/21351965/answer/176777987来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。开门见山,直接给答案:矩阵乘法的本质是线性空间运动的描述!为了解释清楚这个问题,我们需要补充一些线性代数学习过程中被忽略的基础知识。文章较长,大致
boot 库学习记录--数据结构 1. noncopyable 实现一个禁止复制的类.#include class do_not_copy: boost:: noncopyable{private:}2.
ros 创建自己的msg srv 注意 1. 在建立自己的 xx.msg 后 写入 int32 num 等信息后。 CMakeLists.txt中 add_message_files(FILES Message1.msg)2.如果在程序中引用该message的头报错说找不到时注意: package.xml 中要有: message_generation message_r
C++ map 容器 1. #include 2. map my_Map; typedef map MY_MAP; MY_MAP my_Map;3.插入数据my_Map["a"] = 1; my_Map.insert(map :: value_type("b",2));my_Map.insert(pair ("c", 3));my_Map.inse
boost 学习 1. shared_ptr : 智能指针。2.转换: shared_ptr sp1 = (new bad_exception("error")); shared_ptrsp2 = dynamic_pointer_cast(sp1);3.shared_ptrsp(new int(10)); //指向整数的 shared_ptr shared_ptr sp2
tf 使用 1. 发布自己的tf: 其实就是发布你建立的坐标系。步骤如下: 1.定义一个广播,相当于发布话题时定义一个发布器,还是以官方的小乌龟例程为例: static tf::TransformBroadcaster br;2.定义存放转换信息(平动,转动)的变量tf::Transform transform;3.设置坐标原点transform.setOrigi
笔记2017-06-26 //-----------------------计算机器人曲率--------------------------------------------------*output_kappa = calcCurvature(next_target_position_);
笔记2017-6-22 1.std::ostringstream topic ; topic (topic.str(),100);std::string tiopic(std::string("image_raw")); topic = "camera" + std::to_string(i) +"/" + topic ;ros::Rate loop_rate(15);whlie(ros::ok())
git 操作 企业web提交: 前提在本机安装 git1.在web端创建git新目录。2.在本地创建相同的文件夹执行下列命令。touch README.mdgit initgit add README.mdgit commit -m "first commit"git remote add origin http://git.×××.com/×××/temp.gitgit push -u
IOS 返回根视图 1.导航栏返回根视图[self.navigationController popToRootViewControllerAnimated:YES];2.导航栏返回特定视图for (UIViewController *controller in self.navigationController.viewControllers) { if ([controller i
C++ 学习记录4 -- 模板chongzai 在C++中,数据的类型也可以通过参数来传递,在函数定义时可以不指明具体的数据类型,当发生函数调用时,编译器可以根据传入的实参自动推断数据类型。这就是类型的参数化。值(Value)和类型(Type)是数据的两个主要特征,它们在C++中都可以被参数化。所谓函数模板,实际上是建立一个通用函数,它所用到的数据的类型(包括返回值类型、形参类型、局部变量类型)可以不具体指定,而是用一个虚拟的类
C++ 学习记录 --继承 多态 继承: 在设计派生类时,对继承过来的成员变量的初始化工作也要由派生类的构造函数完成,但是大部分基类都有 private 属性的成员变量,它们在派生类中无法访问,更不能使用派生类的构造函数来初始化。这种矛盾在C++继承中是普遍存在的,解决这个问题的思路是:在派生类的构造函数中调用基类的构造函数。类其实也是一种数据类型,也可以发生数据类型转换,不过这种转换只有在基类和派生类之间才有意义
C++ 学习记录3 --引用 C/C++ 禁止在函数调用时直接传递数组的内容,而是强制传递数组指针引用(Reference)是 C++ 相对于C语言的又一个扩充。引用可以看做是数据的一个别名,通过这个别名和原来的名字都能够找到这份数据。type &name = data;type 是被引用的数据的类型,name 是引用的名称,data 是被引用的数据。引用必须在定义的同时初始化,并且以后也要从一而终