我如何在C中实现这个Matlab代码?

时间:2016-02-13 12:29:09

标签: matlab

我需要你的帮助才能在C中实现这个Matlab代码。

RO = SQRT((C1 C1)(C2 C2)(C3 * C3)。。。。);

我知道。*是逐个元素。

有什么想法吗?

谢谢。

2 个答案:

答案 0 :(得分:2)

这可以使用for循环来解决,以进行元素乘法。我在下面提供了一个非常简单的解决方案,但您必须自己填充C1C2C3的内容

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(void) {
    double C1, C2, C3[2048] = { 0 }; //Initialise arrays
    double ro[2048] = { 0 };

    for (int i = 0; i < 2048; i++) { //Iterate through elementwise

        ro[i] = sqrt(C1[i] ^ 2 + C2[i] ^ 2 + C3[i] ^ 2);

    }
}

答案 1 :(得分:0)

感谢您的建议。我只是将+更改为*但它是完美的。谢谢!

double C1[2048]={1,2,3,5,6,7,4,2,5};
double C2[2048]={1,6,3,5,6,2,4,1,6};
double C3[2048]={1,2,1,5,6,4,4,2,2};

int ro[2048] = { 0 };

for (int i = 0; i < 2048; i++) {

    ro[i] = sqrt((C1[i]*C1[i]) * (C2[i]*C2[i]) * (C3[i]*C3[i]));
}