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

Построить результат сглаживания заданной вещественной матрицы размером 10 на 10. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
Lollipo
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 36
07.10.2010, 20:02     Построить результат сглаживания заданной вещественной матрицы размером 10 на 10. #1
Соседями элемента Аij в матрице назовем элементы Аk! С i-1≤k≤i+1,j-1≤1≤j+1, (k, 1) ≠ (I, j). Операция сглаживания матрицы дает новую матрицу того же размера, каждый элемент который получается как среднее арифметическое имеющихся соседей соответствующего элемента исходной матрицы. Построить результат сглаживания заданной вещественной матрицы размером 10 на 10.
В сглаженной матрице найти сумму модулей элементов, расположенных ниже главной диагонали.
Вложения
Тип файла: docx Doc1.docx (77.9 Кб, 46 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2010, 20:02     Построить результат сглаживания заданной вещественной матрицы размером 10 на 10.
Посмотрите здесь:

Построить результат сглаживания заданной вещественной матрицы C++
C++ В вещественной матрице размером NxN найти максимальный и минимальный элементы.
По заданной вещественной матрице N*M найти C++
предусмотреть динамический захват памяти, решение оформить в виде отдельной функции. В вещественной матрице размером NxN найти максимальный C++
Подсчитать количество локальных минимумов заданной матрицы размером 10 на 10 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
07.10.2010, 21:31     Построить результат сглаживания заданной вещественной матрицы размером 10 на 10. #2
так?

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream>
 
int main()
{
    const int row = 3;
    const int col = 3;
 
    //создаем исходную матрицу
    int src_arr[row][col] = {   {1,2,3},
                                {4,5,6},
                                {7,8,9} };
 
    std::cout << "First matrix: " << std::endl;
    for (int i = 0; i < row; ++i){
        for (int j = 0; j < col; ++j){
            std::cout << src_arr[i][j] << " ";
        }
        std::cout << std::endl;
    }
 
    //создаем целевую (сглаженную) матрицу (тойже размерности)
    int dst_arr[row][col]={};
 
 
    for (int i = 0; i < row; ++i){
        int cnt = 0;
        int sum = 0;
        for (int j = 0; j < col; ++j){
            if ((i + 1) < row) { sum += src_arr[i+1][j]; ++cnt; }
            if ((j + 1) < col) { sum += src_arr[i][j+1]; ++cnt; }
            if ((i - 1) >= 0 ) { sum += src_arr[i-1][j]; ++cnt; }
            if ((j - 1) >= 0 ) { sum += src_arr[i][j-1]; ++cnt; }
 
            dst_arr[i][j] = sum / cnt;
            cnt = 0;
            sum = 0;
        }
    }
 
    std::cout << "Smoothed matrix: " << std::endl;
    for (int i = 0; i < row; ++i){
        for (int j = 0; j < col; ++j){
            std::cout << dst_arr[i][j] << " ";
        }
        std::cout << std::endl;
    }
 
    return 0;
}
приложение
Миниатюры
Построить результат сглаживания заданной вещественной матрицы размером 10 на 10.  
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
11.10.2010, 20:46     Построить результат сглаживания заданной вещественной матрицы размером 10 на 10. #3
сглаженная матрица 3 на 3

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream>
 
int main()
{
    const int row = 3;
    const int col = 3;
 
    //создаем исходную матрицу
    int src_arr[row][col] = {   {1,2,3},
                                {4,5,6},
                                {7,8,9} };
 
    std::cout << "First matrix: " << std::endl;
    for (int i = 0; i < row; ++i){
        for (int j = 0; j < col; ++j){
            std::cout << src_arr[i][j] << " ";
        }
        std::cout << std::endl;
    }
 
    //создаем целевую (сглаженную) матрицу (тойже размерности)
    int dst_arr[row][col]={};
 
 
    for (int i = 0; i < row; ++i){
        int cnt = 0;
        int sum = 0;
        for (int j = 0; j < col; ++j){
            if ((i + 1) < row) { sum += src_arr[i+1][j]; ++cnt; }
            if ((j + 1) < col) { sum += src_arr[i][j+1]; ++cnt; }
            if ((i - 1) >= 0 ) { sum += src_arr[i-1][j]; ++cnt; }
            if ((j - 1) >= 0 ) { sum += src_arr[i][j-1]; ++cnt; }
 
            dst_arr[i][j] = sum / cnt;
            cnt = 0;
            sum = 0;
        }
    }
 
    std::cout << "Smoothed matrix: " << std::endl;
    for (int i = 0; i < row; ++i){
        for (int j = 0; j < col; ++j){
            std::cout << dst_arr[i][j] << " ";
        }
        std::cout << std::endl;
    }
 
    return 0;
}
поменять размерность и найти сумму модулей думаю не составит труда
Lollipo
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 36
11.10.2010, 20:59  [ТС]     Построить результат сглаживания заданной вещественной матрицы размером 10 на 10. #4
Ой спасибо большое! Для меня матрицы это действительно сложно!
Yandex
Объявления
11.10.2010, 20:59     Построить результат сглаживания заданной вещественной матрицы размером 10 на 10.
Ответ Создать тему
Опции темы

Текущее время: 20:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru