微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 MATLAB 编码器对唯一函数进行 C++ 转换

如何解决使用 MATLAB 编码器对唯一函数进行 C++ 转换

我正在尝试使用 MATLAB 编码器将这个简单的 MATLAB 函数转换为 C++:

function uniqueC_conversion()
a= [1 0 1 2 4 5 1]
b=unique(a)
end

输出是这样的:

//
// uniqueCPP.cpp
//
// Code generation for function 'uniqueCPP'
//

// Include files
#include "uniqueCPP.h"
#include <cmath>
#include <math.h>

// Function DeFinitions
void uniqueCPP()
{
  static const signed char iv[7]{1,1,2,4,5,1};
  static const signed char iv1[7]{2,3,7,6};
  int exponent;
  int k;
  int nb;
  signed char b_data[7];
  for (k = 0; k < 7; k++) {
    b_data[k] = iv[iv1[k] - 1];
  }
  nb = -1;
  k = 1;
  while (k <= 7) {
    int x;
    x = b_data[k - 1];
    int exitg1;
    do {
      exitg1 = 0;
      k++;
      if (k > 7) {
        exitg1 = 1;
      } else {
        double absx;
        absx = static_cast<double>(x) / 2.0;
        if (absx <= 2.2250738585072014E-308) {
          absx = 4.94065645841247E-324;
        } else {
          frexp(absx,&exponent);
          absx = std::ldexp(1.0,exponent - 53);
        }
        if (!(std::abs(static_cast<double>(x - b_data[k - 1])) < absx)) {
          exitg1 = 1;
        }
      }
    } while (exitg1 == 0);
    nb++;
    b_data[nb] = static_cast<signed char>(x);
  }
}

// End of code generation (uniqueCPP.cpp)

我很困惑,因为我希望转换后的代码使用本页中解释的唯一方法https://www.geeksforgeeks.org/stdunique-in-cpp/

我得到的代码更像是一个 c 转换而不是一个 C++ 转换。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。