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

标签 c arrays

我已经为 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/

相关文章:

c - 如何在SDL2中旋转纹理?

javascript - 从数组的 json 对象访问动态键

java - 制表符分隔的字符串到数组

python - 高效统计 NumPy 中唯一子数组的出现次数?

c++ - 如何初始化可变长度的无符号字符数组?

c - 奇数 PIL 逊相关系数结果

c - "return x == y"是什么意思?

c - 用位运算符解数独的算法

计算一个句子的字母给出随机输出

Java 将 INT 数组中的项目添加到 String 数组