MPU6050のサンプルプログラム2

Dependencies:   ConfigFile SDFileSystem mbed

Fork of LAURUS_program by LAURUS

Committer:
taurin
Date:
Mon Dec 07 02:11:56 2015 +0000
Revision:
36:94dc027e05cd
Parent:
23:79cdc1432160
MPU?HMC??????ver

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ojan 3:5358a691a100 1 #include "Vector_Matrix_operator.h"
ojan 3:5358a691a100 2
ojan 3:5358a691a100 3 Vector operator*(const Matrix& lhm, const Vector& rhv) {
ojan 23:79cdc1432160 4 if (lhm.GetCol() != rhv.GetDim()) error("Irregular Dimention");
ojan 3:5358a691a100 5 Vector retVec(lhm.GetRow());
ojan 3:5358a691a100 6
ojan 3:5358a691a100 7 for (int i = 1; i <= lhm.GetRow(); i++) {
ojan 3:5358a691a100 8 float temp = 0.0f;
ojan 3:5358a691a100 9 for (int j = 1; j <= rhv.GetDim(); j++) {
ojan 3:5358a691a100 10 temp += lhm.GetComp(i, j)*rhv.GetComp(j);
ojan 3:5358a691a100 11 }
ojan 3:5358a691a100 12 retVec.SetComp(i, temp);
ojan 3:5358a691a100 13 }
ojan 3:5358a691a100 14
ojan 3:5358a691a100 15 retVec.CleanUp();
ojan 3:5358a691a100 16
ojan 3:5358a691a100 17 return retVec;
ojan 3:5358a691a100 18 }
ojan 3:5358a691a100 19
ojan 3:5358a691a100 20 Vector operator*(const Vector& lhv, const Matrix& rhm) {
ojan 23:79cdc1432160 21 if (lhv.GetDim() != rhm.GetRow()) error("Irregular Dimention");
ojan 3:5358a691a100 22 Vector retVec(rhm.GetCol());
ojan 3:5358a691a100 23
ojan 3:5358a691a100 24 for (int i = 1; i <= rhm.GetCol(); i++) {
ojan 3:5358a691a100 25 float temp = 0.0f;
ojan 3:5358a691a100 26 for (int j = 1; j <= lhv.GetDim(); j++) {
ojan 3:5358a691a100 27 temp += lhv.GetComp(j) * rhm.GetComp(j, i);
ojan 3:5358a691a100 28 }
ojan 3:5358a691a100 29 retVec.SetComp(i, temp);
ojan 3:5358a691a100 30 }
ojan 3:5358a691a100 31
ojan 3:5358a691a100 32 retVec.CleanUp();
ojan 3:5358a691a100 33
ojan 3:5358a691a100 34 return retVec;
ojan 3:5358a691a100 35 }