gpt4 book ai didi

c - 如何对从 C 函数返回的二维数组执行计算操作?

转载 作者:太空宇宙 更新时间:2023-11-04 04:35:43 25 4
gpt4 key购买 nike

我已经为 FIR 滤波器编写了一个函数,它有一个数组作为输入,另一个数组作为输出。这是我的 FIR 滤波器函数:

float   * filter(float PATIENTSIGNAL[],float FILTERCOEF[])

我可以毫无问题地使用它,如下所示:

float   *FILTEROUT;
float FIROUT[8000];

FILTEROUT = filter(PATIENTSIGNAL, FILTERCOEF);

/* */
for (k = 0; k <= 1000; k++){
FIR[k] = 10 + FILTEROUT[k];
}

如您所见,我向输出数组的每个元素添加了数字 10 以评估我能否将此数组用于 future 的计算,

但是当我想使用二维数组时,这是我的问题,我的函数正确返回二维数组;

float(*Windowing(float SIGNAL[], int WINDOWSIZE));

我已经通过这段代码以适当的方式使用了 Windowing 函数:

patientwindow = Windowing(FILTEROUT, WINDOWSIZE);

并且“patientwindow”数组中的所有数字都是正确的,但是当我想执行一些简单的操作(如求和)时:

float evaluate[WINDOWSIZE][OVERLAP/4];

for (j = 0; j <= NUMBEROFWINDOWS; j++){
for (i = 0; i < WINDOWSIZE; i++){

evaluate[i][j] = 2+ (patientwindow[i][j]);

}
}

“评估”数组的所有元素都是0

你能帮帮我吗?

最佳答案

使用

float** patientwindow;

float* 是指向数组的指针,而 float** 是指向矩阵的指针(为什么会这样,请参阅此答案 https://stackoverflow.com/a/17953693/4996826)。

如果你想使用 float* ,那么使用下面的代码片段:

evaluate[i][j] = 2 + (patientwindow[(i * NUMBEROFWINDOWS) + j]);

关于c - 如何对从 C 函数返回的二维数组执行计算操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30774203/

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