Weather casting with Machine Learning (SVM and SRNN).
Dependencies: EthernetInterface GraphicHandler NTPClient SRNN SVM SensorModule mbed-rtos mbed
ml_util/ml_util.cpp@6:29d393d430d0, 2015-02-22 (annotated)
- Committer:
- yukari_hinata
- Date:
- Sun Feb 22 01:06:19 2015 +0000
- Revision:
- 6:29d393d430d0
- Parent:
- 2:20ecfe6edd71
add svm sample data
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yukari_hinata | 2:20ecfe6edd71 | 1 | #include "ml_util.hpp" |
yukari_hinata | 2:20ecfe6edd71 | 2 | |
yukari_hinata | 2:20ecfe6edd71 | 3 | void multiply_mat_vec(float* mat, // m * n 行列 |
yukari_hinata | 2:20ecfe6edd71 | 4 | float* vec, // n * 1 ベクトル |
yukari_hinata | 2:20ecfe6edd71 | 5 | float* result, // m * 1 計算結果ベクトル |
yukari_hinata | 2:20ecfe6edd71 | 6 | int m, // m |
yukari_hinata | 2:20ecfe6edd71 | 7 | int n) // n |
yukari_hinata | 2:20ecfe6edd71 | 8 | { |
yukari_hinata | 2:20ecfe6edd71 | 9 | register float mat_sum; |
yukari_hinata | 2:20ecfe6edd71 | 10 | for (int mat_mul_i = 0; mat_mul_i < m; mat_mul_i++) { |
yukari_hinata | 2:20ecfe6edd71 | 11 | mat_sum = 0; |
yukari_hinata | 2:20ecfe6edd71 | 12 | /* |
yukari_hinata | 2:20ecfe6edd71 | 13 | printf("result[%d] : %p, MATRIX_AT(mat,n,mat_mul_i,mat_mul_j) : %p, vec[0] : %p", mat_mul_i, |
yukari_hinata | 2:20ecfe6edd71 | 14 | &(result[mat_mul_i]), &(MATRIX_AT(mat,n,mat_mul_i,0)), vec); |
yukari_hinata | 2:20ecfe6edd71 | 15 | */ |
yukari_hinata | 2:20ecfe6edd71 | 16 | for (int mat_mul_j = 0; mat_mul_j < n; mat_mul_j++) { |
yukari_hinata | 2:20ecfe6edd71 | 17 | mat_sum += MATRIX_AT(mat,n,mat_mul_i,mat_mul_j) * vec[mat_mul_j]; |
yukari_hinata | 2:20ecfe6edd71 | 18 | } |
yukari_hinata | 2:20ecfe6edd71 | 19 | result[mat_mul_i] = mat_sum; |
yukari_hinata | 2:20ecfe6edd71 | 20 | } |
yukari_hinata | 2:20ecfe6edd71 | 21 | } |