简述Vscode C/C++环境配置及原理

说明

  1. C/C++:.c .cpp ->编译器 -> .exe (可执行文件)

  2. VSCode :编辑器,需配套编译器(winlibs…)

    Visual studio / Code Blocks /Pycharm : IDE–编译器/解释器+一套完整的生产工具,可直接一键运行代码

看到的一句话: “小白的话,还是老老实实用ide,各种语言都有对应的,c/c++可以用 devc++,codeblocks, clion),vs(vc++,c#)。java,python用IntelliJ 全家桶。大家要明白,vscode永远只是一个编辑器,而且折腾环境配置极其消耗小白的学习意志。



一、准备工作

–下载编译器并设置环境变量

1)下载编译器

​  WinLibs - GCC+MinGW-w64 compiler for Windows

​   --Release versions-发行版本

​   --UCRT runtime-UCRT运行时: Win64/Win32选择合适的下载

ps

  1. 7-zip和zip区别:7-zip压缩效率高(10MB变1MB),但必须下载7-zip才能解压缩

    zip虽大但软件要求不高。

  2.- without LLVM/Clag/LLD/LLDB:意为没有以上编译器组件

​  (F 搜 :有github文件加速)

2)解压

mingw32//bin路径下,cmd运行gcc --version(c编译器)、g++ --

  • 33
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
二维Kalman滤波器是一种用于状态估计和信号滤波的理论方法。它结合了系统的动态模型和测量的观测数据,可以在存在测量噪声和系统不确定性的情况下,通过递归计算得到状态的最优估计。 该滤波器的原理可以简述为以下几个步骤: 1. 初始化: - 初始化状态向量(x)和协方差矩阵(P)的估计值。 - 初始化测量噪声协方差矩阵(R)和系统噪声协方差矩阵(Q)的估计值。 2. 预测阶段: - 根据系统的动态模型,使用状态转移矩阵(A)和系统噪声协方差矩阵(Q)来预测当前时刻的状态向量和协方差矩阵。 3. 更新阶段: - 根据当前的测量值和测量噪声协方差矩阵(R),计算观测模型矩阵(C)和卡尔曼增益(K)。 - 使用卡尔曼增益、观测模型矩阵和测量值,更新状态向量和协方差矩阵的估计值。 4. 重复预测和更新阶段,直到完成所有的测量数据处理。 以下是一个使用C/C++编写的二维Kalman滤波器的简单源代码示例: ```c #include <iostream> #include <opencv2/opencv.hpp> using namespace std; using namespace cv; int main() { // 定义状态向量、协方差矩阵等变量 Mat x(2, 1, CV_32FC1); Mat P(2, 2, CV_32FC1); Mat A(2, 2, CV_32FC1); Mat Q(2, 2, CV_32FC1); Mat H(1, 2, CV_32FC1); Mat R(1, 1, CV_32FC1); Mat I(2, 2, CV_32FC1); Mat z(1, 1, CV_32FC1); Mat K(2, 1, CV_32FC1); // 初始化估计值 x.at<float>(0, 0) = 0; x.at<float>(1, 0) = 0; P.at<float>(0, 0) = 1; P.at<float>(0, 1) = 0; P.at<float>(1, 0) = 0; P.at<float>(1, 1) = 1; // 初始化模型参数和噪声协方差矩阵 A.at<float>(0, 0) = 1; A.at<float>(0, 1) = 1; A.at<float>(1, 0) = 0; A.at<float>(1, 1) = 1; Q.at<float>(0, 0) = 0.1; Q.at<float>(0, 1) = 0; Q.at<float>(1, 0) = 0; Q.at<float>(1, 1) = 0.1; H.at<float>(0, 0) = 0.5; H.at<float>(0, 1) = 0.5; R.at<float>(0, 0) = 1; I.at<float>(0, 0) = 1; I.at<float>(0, 1) = 0; I.at<float>(1, 0) = 0; I.at<float>(1, 1) = 1; // 循环处理数据 for (int i = 0; i < 100; i++) { // 预测阶段 x = A * x; P = A * P * A.t() + Q; // 更新阶段 z.at<float>(0, 0) = i + rand() % 10; // 生成随机测量值 K = P * H.t() * (H * P * H.t() + R).inv(); x = x + K * (z - H * x); P = (I - K * H) * P; // 输出估计值 cout << "Estimated state at time " << i << ":" << endl; cout << "x = " << x << endl; cout << "P = " << P << endl; } return 0; } ``` 这是一个简单的二维Kalman滤波器示例,其中包括状态估计的初始化和更新阶段的实现。通过不断的预测和更新,可以得到最优的状态估计值。请注意,上述代码仅供参考,实际应用中可能需要根据具体的需求进行调整和完善。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值