Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const int N = 3; //Dimensions of Matrix A and vector b
- float A[N][N] = {
- {0.6077, 0.0014, -0.0021}, //A[0][0], A[0][1], A[0][2]
- {0.0, 0.6077, -0.0002 }, //A[1][0], A[1][1], A[1][2]
- {0.0, 0.0, 0.6033 } //A[2][0], A[2][1], A[2][2]
- };
- //b[0][0], b[0][1], b[0][2]
- float b[N] = {-543.9129, 273.3477, 241.1651};
- float cal[N] = {0.0, 0.0, 0.0};
- float raw[N] = {100.0, 100.0, 100.0};
- float dif[N] = {0.0, 0.0, 0.0};
- template<class T> inline Print &operator <<(Print &obj, T arg) { obj.print(arg); return obj; }
- void setup() {
- Serial.begin(115200);
- }
- void loop() {
- //cal = 1.0e-04 *A*(raw-b);
- //Difference (raw-b)
- for (int j = 0; j < N; j++){
- dif[j] = raw[j] - b[j];
- }
- Serial << dif[0] << " " << dif[1] << " " << dif[2];
- Serial.println();
- //Moltiplication A*dif
- int i, j, k;
- for (i = 0; i < N; i++)
- for(j = 0; j < N; j++)
- {
- cal[N * i + j] = 0;
- for (k = 0; k < N; k++){
- cal[N * i + j] = (cal[N * i + j] + A[N * i + k] * dif[N * k + j]);
- }
- Serial << cal[0] << " " << cal[1] << " " << cal[2];
- Serial.println();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment