Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

05.02.2013, 16:45. Просмотров 282. Ответов 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;
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2013, 16:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проблемы с умножением матрицы (C++):

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

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

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

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

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

Массив: Получить новую матрицу следующим способом: умножением Min каждой строки первой матрицы на Max соответствующего столбца второй - C++
Пусть даны две вещественные матрицы порядка N. Получить новую матрицу следующим способом: умножением минимального элемента каждой строки...

5
St-Voland
171 / 79 / 3
Регистрация: 05.12.2012
Сообщений: 217
05.02.2013, 17:00 #2
Инициализируйте переменную sum в функции. Ато мусор + результат = мусор
1
-=ЮрА=-
Заблокирован
Автор 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;
* * * * }
кажутся тупиковыми

0
MrGluck
Модератор
Эксперт CЭксперт С++
7496 / 4612 / 694
Регистрация: 29.11.2010
Сообщений: 12,626
05.02.2013, 17:35 #4
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Starkread, ну и гору STL-кого кода наворотил

Не по теме:

где?

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

Не по теме:

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

0
Starkread
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 2
05.02.2013, 17:41 #6
Цитата Сообщение от St-Voland Посмотреть сообщение
Инициализируйте переменную sum в функции. Ато мусор + результат = мусор
Спасибо! Читал об этом, но не думал, что такое встретиться на практике. Благодарю, весьма!
0
05.02.2013, 17:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2013, 17:41
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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