From d28f7e6681ffe02a151b9dc89098d7fcef50b214 Mon Sep 17 00:00:00 2001
From: Alexey <AlexeyAB@users.noreply.github.com>
Date: Wed, 28 Mar 2018 20:51:14 +0000
Subject: [PATCH] Update Readme.md

---
 src/matrix.c |   46 ++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 44 insertions(+), 2 deletions(-)

diff --git a/src/matrix.c b/src/matrix.c
index 2e7001e..08e6109 100644
--- a/src/matrix.c
+++ b/src/matrix.c
@@ -22,8 +22,8 @@
     for(i = 0; i < truth.rows; ++i){
         top_k(guess.vals[i], n, k, indexes);
         for(j = 0; j < k; ++j){
-            int class = indexes[j];
-            if(truth.vals[i][class]){
+            int class_id = indexes[j];
+            if(truth.vals[i][class_id]){
                 ++correct;
                 break;
             }
@@ -33,6 +33,35 @@
     return (float)correct/truth.rows;
 }
 
+void scale_matrix(matrix m, float scale)
+{
+    int i,j;
+    for(i = 0; i < m.rows; ++i){
+        for(j = 0; j < m.cols; ++j){
+            m.vals[i][j] *= scale;
+        }
+    }
+}
+
+matrix resize_matrix(matrix m, int size)
+{
+    int i;
+    if (m.rows == size) return m;
+    if (m.rows < size) {
+        m.vals = realloc(m.vals, size*sizeof(float*));
+        for (i = m.rows; i < size; ++i) {
+            m.vals[i] = calloc(m.cols, sizeof(float));
+        }
+    } else if (m.rows > size) {
+        for (i = size; i < m.rows; ++i) {
+            free(m.vals[i]);
+        }
+        m.vals = realloc(m.vals, size*sizeof(float*));
+    }
+    m.rows = size;
+    return m;
+}
+
 void matrix_add_matrix(matrix from, matrix to)
 {
     assert(from.rows == to.rows && from.cols == to.cols);
@@ -114,6 +143,19 @@
     return m;
 }
 
+void matrix_to_csv(matrix m)
+{
+    int i, j;
+
+    for(i = 0; i < m.rows; ++i){
+        for(j = 0; j < m.cols; ++j){
+            if(j > 0) printf(",");
+            printf("%.17g", m.vals[i][j]);
+        }
+        printf("\n");
+    }
+}
+
 void print_matrix(matrix m)
 {
     int i, j;

--
Gitblit v1.10.0