Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Starkread
Сообщений: n/a
#1

Проблемы с умножением матрицы - C++

05.02.2013, 16:45. Просмотров 266. Ответов 5
Метки нет (Все метки)

Здравствуйте, пожалуйста, взгляните на этот код... Думаю, что написал все правильно. Но к сожалению вывод программы такой:
Matrix:
0 0 0 0
0 1 2 3
0 2 4 6
Vector:
0 1 2 3
Test...
-1.33775e-05 - result //<--- результат
Результат умножения не такой, какой нужно:/ Подскажите, в чем проблема?
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
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
using namespace std;
#define COLUMN 4
#define LINE 3
 
float matrix_w[LINE*COLUMN];
float input_vec[COLUMN];
 
float vec_mul(float *, float *, int); // function to mult vectors
 
int main()
{
        cout << "Matrix: " << endl; // matrix prepare   
        for(int y = 0; y < LINE; y++)
                {
                for(int x = 0; x < COLUMN; x++){ matrix_w[COLUMN*y+x] = x*y; cout << matrix_w[COLUMN*y+x] <<" "; }
                cout << endl;
                }
        cout << "Vector: " << endl; // vector prepare
        for(int x = 0; x < COLUMN; x++){ input_vec[x] = x; cout << input_vec[x] << " ";}
        cout << endl;
        cout << "Test..." << endl;
        float res = vec_mul(input_vec, matrix_w, 0);
        cout.unsetf(ios::scientific);
        cout.setf(ios::dec);
        cout << res << " - result" << endl;
        return 0;
}
 
float vec_mul(float *ivec, float *imatx, int NL) // NL - number of line:)
        {
        float sum;
        for(int x = 0; x < COLUMN; x++){ sum += ivec[x]*imatx[COLUMN*NL+x]; }
        return sum;
        }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2013, 16:45     Проблемы с умножением матрицы
Посмотрите здесь:

Шифрование умножением на бинарные матрицы - C++
Пытаюсь получить сделать шифрование на бинарные матрицы.Получился вот такой вот код.Ну почему выдает ошибку когда пытаюсь скомпилировать. ...

Получить новую матрицу умножением элементов первой матрицы на наибольшее из значений элементов соответствующий строки второй матрицы - C++
Даны две действительные квадратные матрицы порядка n. Получить новую матрицу умножением элементов каждой строки первой матрицы на...

Получить новую матрицу умножением элементов каждой строки первой матрицы - C++
Даны две действительные квадратные матрицы порядка n.Получить новую матрицу умножением элементов каждой строки первой матрицы на наибольшее...

Зменить возведение в степень умножением - C++
Приветьте, помогите решить эту задачу одним циклом for, не юзая pow. Есть int N, есть double x; Нужно найти x^n^2/2^n;

Пользуясь только умножением, получить - C++
Пользуясь только умножением, получить a2 a5 a17 за 6 операций

Проблемы с классами при поиске обратной матрицы - C++
Доброго времени суток! Задача такова. Необходимо создать класс, который создавал бы матрицу заданного размера (квадратную), рассчитывал...

Описать функцию Stepen (x, n) от вещественного x и натурального n, вычисляющую (умножением) величину x^n - C++
Описать функцию Stepen (x,n) от вещественного x и натурального n, вычисляющую (посредством умножения) величину xn, и использовать ee для...

Всегда ли после логического сложения можно однозначно определить исходные данные логическим умножением? - C++
Привет! Может вопрос и глупый, но всё же, терзают меня смутные сомнения по поводу потери данных в булевой алгебре. Смотрите, допустим: ...

Проблемы с gets - C++
здравствуйте,помогите пожалуйста сразу хочу заметить,что препод нас заставляет писать все в microsoft visual studio 2005 пишу...

Проблемы с C++ - C++
Вот в универе дали код проги и сказали розабраться и обьяснить что это как оно работает и с чем его едять. Помогите разобраться что это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
St-Voland
171 / 79 / 3
Регистрация: 05.12.2012
Сообщений: 217
05.02.2013, 17:00     Проблемы с умножением матрицы #2
Инициализируйте переменную sum в функции. Ато мусор + результат = мусор
-=ЮрА=-
Заблокирован
Автор FAQ
05.02.2013, 17:22     Проблемы с умножением матрицы #3
Starkread, ну и гору STL-кого кода наворотил, погляди как всё элементарно
Как умножить матрицы


Кликните здесь для просмотра всего текста

Не по теме:

PS:Класс прогера не в том чтобы подъюзать контейнеры либо напихать в прогу функций, Класс прогера - написать всё просто и понятно. Без обид лично мне твой концепт с веткорами и 1-м пробором в цикле

Цитата Сообщение от Starkread Посмотреть сообщение
float vec_mul(float *ivec, float *imatx, int NL) // NL - number of line
* * * * {
* * * * float sum;
* * * * for(int x = 0; x < COLUMN; x++){ sum += ivec[x]*imatx[COLUMN*NL+x]; }
* * * * return sum;
* * * * }
кажутся тупиковыми

MrGluck
Модератор
Эксперт CЭксперт С++
6997 / 4168 / 594
Регистрация: 29.11.2010
Сообщений: 11,047
05.02.2013, 17:35     Проблемы с умножением матрицы #4
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Starkread, ну и гору STL-кого кода наворотил

Не по теме:

где?

-=ЮрА=-
05.02.2013, 17:37
  #5

Не по теме:

MrGluck, да как то воспринял что у человека вектора, даже хз чего так...
В лбом случае код поста1 непригоден, а так да прошу простить - просто гора не очень удачного кода, СТЛ нет виноват

Starkread
Сообщений: n/a
05.02.2013, 17:41     Проблемы с умножением матрицы #6
Цитата Сообщение от St-Voland Посмотреть сообщение
Инициализируйте переменную sum в функции. Ато мусор + результат = мусор
Спасибо! Читал об этом, но не думал, что такое встретиться на практике. Благодарю, весьма!
Yandex
Объявления
05.02.2013, 17:41     Проблемы с умножением матрицы
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru