Передача двумерных массивов (матрицы) в функции в Arduino для нейронных сетей - PullRequest
0 голосов
/ 22 января 2020

Я знаю, что есть еще один пост, рассказывающий об этом, но я чувствую, что они мне не помогают, я хочу сделать функции для умножения матрицы и суммирования матрицы, и одну для печати тоже. Мне нужно это для работы с нейронными сетями

/*
Function to matrix multiplication:

All the matrix need to be declarated

 r1 = row of the first matrix
 c1 = column of the first matrix
 r2 = row of the first matrix
 c2 = column of the first matrix

 first = A matrix
 second = B matrix
 mult = C matrix, or A * B
*/
void dot(int r1, int c1, int r2, int c2, float first[][c1], float second[][c2], float mult[][c2])
{
    for (int i = 0; i < r1; ++i)
    {
        for (int j = 0; j < c2; ++j)
        {
            for (int k = 0; k < c1; ++k)
            {
                mult[i][j] += first[i][k] * second[k][j];
            }
        }
    }
}

Это должно работать с объявленной матрицей, она работает в C, но мне нужно это в Arduino

Что я могу сделать?

Это на сумму:

/*
Function to sum matrixs:

All the matrix need to be declarated and equal in rows and columns

 r = row of the matrix
 c = column of the matrix

 first = A matrix
 second = B matrix
 sum = C matrix, or A + B
*/
void sum(int r, int c, float first[][c], int second[][c], float sum[][c])
{
    for (int i = 0; i < r; ++i)
    {
        for (int j = 0; j < c; ++j)
        {
            sum[i][j] = first[i][j] + second[i][j];
        }
    }
}

Это для печати, но не важно:

/*
Function to print matrixs:

 r = row of the matrix
 c = column of the matrix

 first = A matrix
 second = B matrix
 sum = C matrix, or A + B
*/
void printMatrix(int r, int c, float matrix[r][c])
{

    for (int i = 0; i < r; i++)
    {
        Serial.print('[ ');
        for (int j = 0; j < c; j++)
        {
            Serial.print(' ');
            Serial.print(matrix[i][j]);
            Serial.print(' ');
        }
        Serial.print(']');
        Serial.println("\n");
    }
}

Мне действительно нужна помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...