gpt4 book ai didi

c - Matlab 生成的 C 代码无法正常工作

转载 作者:行者123 更新时间:2023-11-30 17:59:55 24 4
gpt4 key购买 nike

我想在我的 iOS 应用程序中使用 Matlab 求解方程 (A*x=b)。我生成了 C 源文件并将它们添加到 Xcode 中。奇怪的是,对于相同的 (A,b),我在 Matlab 和 Xcode 中得到不同的结果。

我使用默认设置。有什么建议吗?

Matlab:

%#codegen
function X = solveEquation(A, B)
X = linsolve(A,B);
end

Xcode:

double* A_data = malloc(num * num * sizeof(double));     
double* B_data = malloc(num * sizeof(double));
for (int i=0; i<num; i++) {
for (int j=0; j<num; j++) {
double sum = 0.0;
for (int k=0; k<9; k++) {
double diff = powf(A[i][k]-A[j][k],2);
sum += diff;
}
A_data[j*num+i] = exp(sum/-2);
}
B_data[i] = A[i][9];
}

int A_sizes[] = {num, num};
int B_sizes[] = {num, 1};
double* X_data = malloc(num * sizeof(double));
int X_sizes[] = {num, 1};
solveEquation(A_data, A_sizes, B_data, B_sizes, X_data, X_sizes);

最佳答案

结果有何不同? Matlab 的数字有可能(甚至很可能)比 C 的 double 数据类型更复杂。这可能会导致结果之间的精度存在差异。

关于c - Matlab 生成的 C 代码无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11015079/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com