Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 26.11.2017
Сообщений: 166

Сложить две матрицы

28.02.2019, 16:54. Показов 2272. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Класс Main
Java
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
import java.io.*;
 
public class Main{
    public static void main(String[] args) throws Exception {
        Matrice matrice1 = new Matrice();
        Matrice matrice2 = new Matrice();
        matrice1.go(5);
        matrice2.go(3);
 
        int[][] tempMatrice1 = matrice1.getMatrice();
        int[][] tempMatrice2 = matrice2.getMatrice();
        System.out.println(tempMatrice1);
        System.out.println(tempMatrice2);
    }
 
    static void out(Object k, String path) throws Exception{
        FileOutputStream fileOutputStream = new FileOutputStream(path);
        ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);
        objectOutputStream.writeObject(k);
        objectOutputStream.close();
 
    }
 
    static Object in(String path) throws Exception{
        FileInputStream fileInputStream = new FileInputStream(path);
        ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
        Matrice newMatrice = (Matrice) objectInputStream.readObject();
        objectInputStream.close();
        newMatrice.print();
        return newMatrice;
    }
}
Класс Matrice
Java
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
import java.io.Serializable;
import java.util.Random;
 
public class Matrice implements Serializable {
    private int[][] matrice;
 
    public void go(int k){
        matrice = new int[k][k];
 
        Random rnd = new Random();
        for (int i = 0; i < matrice.length; i++) {
            for (int j = 0; j < matrice[i].length; j++) {
                matrice[i][j] = rnd.nextInt(10) + 1;
            }
        }
    }
 
    public void print() {
        for (int i = 0; i < matrice.length; i++) {
            for (int j = 0; j < matrice.length; j++) System.out.print(matrice[i][j] + " ");
            System.out.println();
        }
    }
 
    public int[][] getMatrice(){
        return matrice;
    }
}

Вот что выводиться из tempMatrice1(2)
[[I@445b84c0
[[I@61a52fbd

Вопрос: Как забрать значения в матрице 1 и 2, чтобы сложить их в дальнейшем
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.02.2019, 16:54
Ответы с готовыми решениями:

Сложить две матрицы
две матрицы 1 2 3 4 5 6 7 8 9 и 1 2 3 4 5 6 7 8 9

Необходимо сложить две матрицы
Доброго времени суток. Необходимо решить задачку: Необходимо создать матрицу 3х3.Числа записаны в txt файле. В этом случае значения...

задание сложить и перемножить матрицы в разных потоках, но в результате выполнения программы я могу только ввести 2 матрицы а сложение и умножение не
Добрый день, уважаемые форумчане. У меня задание сложить и перемножить матрицы в разных потоках, но в результате выполнения программы я...

4
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
28.02.2019, 17:30
Цитата Сообщение от poplan Посмотреть сообщение
System.out.println(tempMatrice1);
sout(Arrays.deepToString(tempMatrice1))
1
1 / 1 / 0
Регистрация: 26.11.2017
Сообщений: 166
28.02.2019, 17:53  [ТС]
Если через Arrays делать, то как сложить их в дальнейшем и можно ли задать sout вывод в матричную схему, а не в строку
[[2, 5, 1, 7, 6], [6, 5, 10, 6, 6], [8, 4, 4, 5, 8], [2, 10, 3, 3, 8], [9, 9, 9, 5, 3]]
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
28.02.2019, 17:56
Лучший ответ Сообщение было отмечено poplan как решение

Решение

for (int[] line : matrix) {
System.out.println(Arrays.toString(line) );
}

Добавлено через 33 секунды
matrix замени на своё название двумерного массива
1
 Аватар для Aviz__
2738 / 2047 / 507
Регистрация: 17.02.2014
Сообщений: 9,465
01.03.2019, 13:02
Лучший ответ Сообщение было отмечено poplan как решение

Решение

poplan, вот те, сложителя матриц скелетон, можешь его наращивать и менять.
Java
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
mport java.util.Arrays;
import java.util.concurrent.ThreadLocalRandom;
 
public class Helper {
 
    public static void main(String[] args) {
        Matrix mat1 = new  Matrix(2,3);
        mat1.fillMatr(1);
        mat1.printMatr();
        Matrix mat2 = new  Matrix(2,3);
        mat2.printMatr();
        Matrix matSumm = mat1.add(mat2);
        matSumm.printMatr();
    }
 
}
//####
class Matrix {
    private int row;
    private int clm;
    private int [][] body;
 
    Matrix(int row, int clm) {
        this.row = row;
        this.clm = clm;
        fillMatrRnd();
    }
 
    Matrix() {
        this.row = 2;
        this.clm = 2;
        fillMatr(1);
    }
 
    Matrix(int [][] array) {
        this.row = array.length;
        this.clm = array[0].length;
        body = array;
    }
 
    Matrix add(Matrix otherMatr) {
        Matrix retMatr = new Matrix(new int[this.row][this.clm]);
        for (int r = 0; r < row; r++) {
            for (int c = 0; c < clm; c++) {
                retMatr.setElemMatr(r, c, this.getElemMatr(r, c) + otherMatr.getElemMatr(r, c));
            }
        }
        return retMatr;
    }
 
    private void fillMatrRnd(){
        body = new int[row][clm];
        for (int r = 0; r < row; r++) {
            for (int c = 0; c < clm; c++) {
                body[r][c] = ThreadLocalRandom.current().nextInt(10,100);
            }
        }
    }
 
    void fillMatr(int val){
        body = new int[row][clm];
        for (int r = 0; r < row; r++) {
            for (int c = 0; c < clm; c++) {
                body[r][c] = val;
            }
        }
    }
 
    private boolean isVaidRowAndColomn(int rowV, int clmV) {
        if (rowV >= this.row || rowV < 0) {
            System.out.println("Ошибка в номерах строки");
            return false;
        }
        if (clmV >= this.clm || clmV < 0) {
            System.out.println("Ошибка в номерах строки");
            return false;
        }
        return true;
    }
 
    void setElemMatr(int rowS, int clmS, int val){
        if (!isVaidRowAndColomn(rowS, clmS)) return;
        body[rowS][clmS] = val;
    }
 
    int getElemMatr(int rowS, int clmS){
        if (!isVaidRowAndColomn(rowS, clmS)) return -1;
        return body[rowS][clmS];
    }
 
    void printMatr() {
        System.out.println();
        for (int r = 0; r < row; r++) {
            System.out.println(Arrays.toString(body[r]));
        }
        for (int i = 0; i < clm; i++) {
            System.out.print("---");
        }
    }
 
    public int getRow() {
        return row;
    }
 
    public int getClm() {
        return clm;
    }
 
    public int[][] getBody() {
        return body;
    }
}
Bash
1
2
3
4
5
6
7
8
9
[1, 1, 1]
[1, 1, 1]
---------
[37, 40, 99]
[37, 83, 91]
---------
[38, 41, 100]
[38, 84, 92]
---------
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.03.2019, 13:02
Помогаю со студенческими работами здесь

Даны две действительные квадратные матрицы порядка n, получить новую матрицу
Помогите пожалуйста реализовать задание! Задача: Даны две действительные квадратные матрицы порядка n. Получить новую матрицу путем...

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

Сложить две матрицы
Здраствуйте! у меня 2 кода написанны но не работают помогите сделать отладку!плиз) вот 1 задача:вход 2 квадратные матрицы выход 3-я...

Как сложить две матрицы ?
Есть такой код #include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;cstdlib&gt; #include &lt;iomanip&gt; using namespace std; int main() { ...

Сложить две матрицы в третью
даны 2 матрица 5х4 надо их сложить и полученный ответ записать в 3 матрицу с таким же размером кода у меня нет подскажите с чего начать...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru