声明一个矩阵类Matrix,实例方法:转置、两个矩阵求和

haiyan_ 2010-10-29 08:43:11
有这么个问题不会写~求助!

声明一个矩阵类Matrix,有这样一些实例方法:将一个矩阵转置、求两个矩阵的和。
...全文
1134 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
faramita 2010-11-01
  • 打赏
  • 举报
回复
笨了吧,你问问题都没说明白,你不是要用java写一个类吗,这个类要有基本的实例方法:一个是将矩阵转置,一个是求两个矩阵的和。具体的如何声明定义这个类你不清楚是吧?
假设是M * N阶矩阵,矩阵里面的数据元素如何存放啊?定义一个二维数组呗,float Matrix[m][n];用来存放矩阵数据元素。至少要有这个基本的变量,设为私有变量吧。
两个实例方法,也就是函数,你可以根据矩阵转置要完成的操作来想一下,他要传入哪些参数,是否返回,返回什么类型,设A为m×n阶矩阵(即m行n列),第i 行j 列的元素是a(i,j),即:A=a(i,j)转置后的矩阵为B,则B为一个n×m阶矩,满足B=a(j,i),即 b (i,j)=a (j,i)。这样看这个矩阵转置方法可以没有参数,只要可以调用自己的私有变量就可以了,转置后的矩阵可以直接输出,具体操作可以用代码实现了。
至于矩阵求和,首先要是两个矩阵才能求和,作为一个矩阵对象要完成求和操作需要告诉他另一个求和的矩阵对象,可以知道这个矩阵求和实力要有个传入一个矩阵对象的数据元素,然后把代数中的操作用java语言描述出来,你也可以重载运算符“+”,求和是直接用A[m][n]+B[m][k]搞定。
这只是基本的一点思路具体代码你慢慢写吧,呵呵
haiyan_ 2010-11-01
  • 打赏
  • 举报
回复
我写了个程序,不过没调出来。是这样的:
import java.io.*;
public class Matrix {
int mat[][]=new int[2][3];
int i,j;
Matrix(){
for(i=0;i<2;i++){
for(j=0;j<3;j++)
mat[i][j]=0;
}
}
public void transpose(int mt[][]){
int tra[][]=new int[3][2];
for(i=0;i<3;i++){
for(j=0;j<2;j++){
tra[i][j]=mt[j][i];
System.out.print(tra[i][j]);
}
System.out.println();
}
}
public Matrix getsum(int a[][]){
for(i=0;i<2;i++){
for(j=0;j<3;j++)
sum[i][j]=mt[i][j]+a[i][j];
}
}
public void print(){
for(i=0;i<2;i++){
for(i=0;i<3;i++)
System.out.print(mat[i][j]);
}
}
public void in(){
String str;
BufferedReader buf;
buf=new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入矩阵:");
for(i=0;i<2;i++){
for(i=0;i<3;i++){
str=buf.readLine();
mat[i][j]=Integer.parseInt(str);
}
}
}
public static void main(String[] args) throws IOException {
Matrix mt=new Matrix();
Matrix a=new Matrix();
mt.in();
a.in();
mt.transpose();
mt.getsum(a);
mt.print();
}
}
出错:
D:\java作业\src\Matrix.java:34: cannot find symbol
symbol : variable sum
location: class Matrix
sum[i][j]=mt[i][j]+a[i][j];
^
D:\java作业\src\Matrix.java:34: cannot find symbol
symbol : variable mt
location: class Matrix
sum[i][j]=mt[i][j]+a[i][j];
^
D:\java作业\src\Matrix.java:34: operator + cannot be applied to <any>,int
sum[i][j]=mt[i][j]+a[i][j];
^
D:\java作业\src\Matrix.java:60: transpose(int[][]) in Matrix cannot be applied to ()
mt.transpose();
^
D:\java作业\src\Matrix.java:61: getsum(int[][]) in Matrix cannot be applied to (Matrix)
mt.getsum(a);
^
5 errors

帮我改改吧~~

50,543

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧