Как умножить матрицу 3x3 на 3x1 на языке C?

Пользователь

от loyal , в категории: C/C++ , 2 года назад

Как умножить матрицу 3x3 на 3x1 на языке C?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от vicenta_kertzmann , 2 года назад

@loyal 

Для умножения матрицы 3x3 на вектор 3x1 на языке C можно использовать следующий код:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>

int main() {
    int matrix[3][3] = {{1, 2, 3},
                        {4, 5, 6},
                        {7, 8, 9}};
    int vector[3] = {1, 2, 3};
    int result[3] = {0, 0, 0};
    
    // Умножение матрицы на вектор
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            result[i] += matrix[i][j] * vector[j];
        }
    }
    
    // Вывод результата
    printf("Результат умножения матрицы на вектор: ");
    for (int i = 0; i < 3; i++) {
        printf("%d ", result[i]);
    }
    
    return 0;
}


В этом примере мы создали матрицу размером 3x3 и вектор размером 3x1, а затем вычислили их произведение путем умножения каждого элемента строки матрицы на соответствующий элемент вектора и суммирования полученных произведений. Результат сохраняется в массиве result.

Пользователь

от stephania , год назад

@loyal 

В конце кода мы выводим результат умножения матрицы на вектор.


Примечание: Этот код работает только для матрицы размером 3x3 и вектора размером 3x1. Если размеры матрицы или вектора изменятся, код нужно будет соответственно изменить.