java矩阵代码_java 矩阵[多维数组]源代码

1.import java.util.Random;

2.

3.//矩阵类

4.public class Matrix {

5.

6. private int[][] matrix;

7.

8. Random random = new Random();

9.

10. // 构造方法

11. public Matrix() {

12. matrix = new int[3][3];

13.

14. }

15.

16. public Matrix(int n) {

17. matrix = new int[n][n];

18.

19. for (int i = 0; i < n; i++) {

20. for (int j = 0; j < n; j++) {

21. matrix[i][j] = random.nextInt(100);

22. }

23. }

24. }

25.

26. public Matrix(int n, int m) {

27. matrix = new int[n][m];

28.

29. for (int i = 0; i < n; i++) {

30. for (int j = 0; j < m; j++) {

31. matrix[i][j] = random.nextInt(100);

32. }

33. }

34. }

35.

36. public int[][] getMatrix() {

37. return matrix;

38. }

39.

40. // 输出矩阵中所有元素

41. public void output() {

42. for (int i = 0; i < matrix.length; i++) {

43. for (int j = 0; j < matrix[i].length; j++) {

44. System.out.print(matrix[i][j] + "\t");

45. }

46. System.out.println();

47. }

48. }

49.

50. // 求一个矩阵的转置矩阵

51. public Matrix transpose() {

52.

53. int n = matrix.length;

54. int m = matrix[0].length;

55.

56. Matrix transMatrix = new Matrix(n, m);

57.

58. for (int i = 0; i < n; i++) {

59. for (int j = 0; j < m; j++) {

60. transMatrix.getMatrix()[i][j] = matrix[j][i];

61. }

62. }

63.

64. return transMatrix;

65. }

66.

67. // 判断一个矩阵是否为上三角矩阵

68. public boolean isTriangular() {

69.

70. // 用相反的思路进行判断

71. for (int i = 1; i < matrix.length; i++) {

72. for (int j = 0; j < i; j++) {

73. if (matrix[i][j] != 0) {

74. return false;

75. }

76. }

77. }

78.

79. return true;

80. }

81.

82. // 判断是否为对称矩阵

83. public boolean isSymmetry() {

84.

85. for (int i = 1; i < matrix.length; i++) {

86. for (int j = 0; j < matrix[i].length; j++) {

87. if (matrix[i][j] != matrix[j][i]) {

88. return false;

89. }

90. }

91. }

92.

93. return true;

94. }

95.

96. // 矩阵的相加

97. public void add(Matrix b) {

98.

99. int[][] matrixOfB = b.getMatrix();

100.

101. int n = matrixOfB.length;

102. int m = matrixOfB[0].length;

103.

104. if (n != matrix.length || m != matrix[0].length) {

105. System.out.println("矩阵的长度不一致,不能相加");

106. } else {

107. for (int i = 0; i < n; i++) {

108. for (int j = 0; j < m; j++) {

109. matrix[i][j] += matrixOfB[i][j];

110. }

111. }

112.

113. }

114. }

115.

116. public static void main(String[] args) {

117.

118. //测试

119. Matrix test1 = new Matrix(4);

120.

121. System.out.println("原始矩阵");

122. test1.output();

123.

124. Matrix transMatrix = test1.transpose();

125.

126. System.out.println("转置矩阵");

127. transMatrix.output();

128.

129. System.out.println("是否是上三角矩阵");

130. System.out.println(test1.isTriangular());

131.

132. System.out.println("是否是对称矩阵");

133. System.out.println(test1.isSymmetry());

134.

135. System.out.println("----------------------");

136.

137. Matrix test2 = new Matrix();

138.

139. test2.output();

140.

141. System.out.println(test2.isTriangular());

142. System.out.println(test2.isSymmetry());

143.

144. System.out.println("----------------------");

145.

146. Matrix test3 = new Matrix(4);

147. Matrix test4 = new Matrix(4);

148.

149. test3.add(test2);

150.

151. System.out.println("矩阵1");

152. test3.output();

153. System.out.println("矩阵2");

154. test4.output();

155.

156. System.out.println("矩阵相加");

157. test3.add(test4);

158.

159. test3.output();

160. }

161.

162.}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值