问题描述
我正在尝试使用 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/
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)