我需要你的幫助來實現C.如何在C中實現這個Matlab代碼?
RO =開方這個Matlab代碼((C1 C1)(C2 C2)(C3 * C3)。。。);
我知道。*是元素的元素。
有什麼想法?
謝謝。
我需要你的幫助來實現C.如何在C中實現這個Matlab代碼?
RO =開方這個Matlab代碼((C1 C1)(C2 C2)(C3 * C3)。。。);
我知道。*是元素的元素。
有什麼想法?
謝謝。
這可以通過使用for
循環來完成元素乘法來解決。我在下面提供了一個非常簡單的解決方案,但你必須填充的C1
,C2
和C3
自己
#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);
}
}
謝謝您的建議內容。我只是改變+,但它是完美的。謝謝!
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]));
}
要麼起作用,要麼本身乘法,要麼兩次冪。作爲參考,發佈此更新作爲您的問題的編輯,而不是重複的答案 – davidhood2
C是一個強***類型的語言。因此,與MATLAB不同,我們首先需要知道變量'c1','c2'和'c3'是什麼,以及相應的「。」是什麼。和「*」操作的意思。雖然如下所述 - 它們表示元素方式的乘法,但是它的實現將取決於相應的C類型 – davidhood2
請您澄清'.'運算符的含義嗎?我明白'。*'意味着點/明的產品,但我並不知道'.'作爲運營商自己。 – Tacocat
C1,C2,C3 - > 2048x1類型的矩陣:double。問題與複製粘貼。它是ro = sqrt((c1。* c1)。*(c2。* c2)。*(c3。* c3));對不起 – konova