Ir ao conteúdo

Posts recomendados

Postado

Bom dia pessoal td bem?

pessoal meu professor do curso que eu faço pediu para fazermos uma multiplicação entre matrizes só que no caso ele quer uma matriz 3x3 multiplicando por um vetor de uma coluna e tres linhas somente. a resposta seria A1,1 x B1,1+ A2,1 x B2,1 + a3,1xB3,1 etc. 

me ajudem a resolver isso por favor.

agradeço desde já.

Postado

Mas como vai multiplicar uma matriz pela outra se em uma temos 9 números e em outra somente 3? Quando chegar no último elemento da "matriz" 3x1 deve-se recomeçar pelo item 1x1, 2x1... ?

Postado

Qual seria a dúvida?

 

Se o tamanhos das matrizes está fixo você poderia até fazer diretamente:

 

C[0] = A[0][0]*B[0] + A[0][1]*B[1] + A[0][2]*B[2];

C[1] = A[1][0]*B[0] + A[1][1]*B[1] + A[1][2]*B[2];

C[2] = A[2][0]*B[0] + A[2][1]*B[1] + A[2][2]*B[2];

  • Curtir 1
  • 5 meses depois...
Postado

/*
 ============================================================================
 Name        : MatrixProd.c
 Author      : Luciano
 Version     :
 Copyright   : Your copyright notice
 Description : Hello World in C, Ansi-style
 ============================================================================
 */

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define rowA 2
#define colA 2
#define rowB 2
#define colB 1

void insertMatrix(float number, int r, int c, float matrix[r][c]){

    for (int i = 0; i < r; i++) {
        for (int j = 0; j < c; j++) {

            matrix[j] = number;

        }
    }

}

void printMatrix(int r,int c, float matrix[r][c]){

    for (int i = 0; i < rowA; i++) {
            for (int j = 0; j < colB; j++) {

                printf("%f ", matrix[j]);

            }

                printf("\n");

        }

}

void matrixProduct(float matrixA[rowA][colB], float matrixB[rowB][colB], float matrixC[rowA][colB]){

    for (int i = 0; i < rowA; i++) {
            for (int j = 0; j < colB; j++) {

                for (int k = 0; k < colA; k++) {

                    matrixC[j] += matrixA[k] * matrixB[k][j];

                }
            }
        }

}

int main(void) {

    float matrixA[rowA][colA];
    float matrixB[rowB][colB];
    float matrixC[rowA][colB];

    insertMatrix(1,rowA,colA,matrixA);
    insertMatrix(2,rowB,colB,matrixB);
    insertMatrix(0,rowA,colB,matrixC);

    matrixProduct(matrixA, matrixB, matrixC);

    printMatrix(rowA, colB, matrixC);

    return 0;
}

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!