- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试编写一段代码,允许我创建 2x2 矩阵,然后使用 JAMA 库 ( http://math.nist.gov/javanumerics/jama/ ) 来计算我刚刚创建的矩阵的特征值和特征向量。然后,我将使用迹确定形式将特征值与分析方法进行比较。
我的代码如下。第一个 block 是生成 2x2 矩阵,然后第二个代码块是计算特征值和特征向量
import Jama.Matrix;
import Jama.EigenvalueDecomposition;
import Jama.*;
import java.util.Scanner;
/**
* Code to generate a 2x2 matrix then find its eigenvalues and eigenvectors
* Check eigenvalue computation using trick for 2x2 case
* ^(only possible for 2x2, not in general possible for general nxn)
*/
public class Matrix_For_Eval_Calc
{
// instance variables - replace the example below with your own
public Matrix A;
// Create empty 2x2 array
/**
* Constructor for objects of class EigenvalueProblem
* Input elements in array
* Fill in elements of 2x2 matrix
*/
public void PopulateMatrix()
{
// initialise instance variables
// Prompt User Input for a_1,1 a_1,2 a_2,1 and a_2,2
Scanner in = new Scanner(System.in);
System.out.println("Enter the element a_{1,1}: ");
double a_11 = in.nextInt();
System.out.println("a_{1,1} = " + a_11 );
System.out.println("Enter the element a_{1,2}: ");
double a_12 = in.nextInt();
System.out.println("a_{1,2} = " + a_12 );
System.out.println("Enter the element a_{2,1}: ");
double a_21 = in.nextInt();
System.out.println("a_{2,1} = " + a_21 );
System.out.println("Enter the element a_{2,2}: ");
double a_22 = in.nextInt();
System.out.println("a_{2,2} = " + a_22 );
double[][] array = { {a_11 , a_12} , {a_21 , a_22} };
Matrix A = new Matrix(array);
// System.out.println(A);
// System.out.println(a_11 + "," + a_12);
// System.out.println(a_21 + "," + a_22);
}
}
这是为了创建矩阵。然后我想在下一个代码中使用该矩阵。当我使用“return A;”时'' 我收到另一个错误,提示“不兼容的类型:意外的返回值”
import Jama.Matrix;
import Jama.EigenvalueDecomposition;
import Jama.*;
import java.util.Scanner;
/**
* Write a description of class EvalCalculation here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class EvalCalculation
{
// instance variables - replace the example below with your own
//private int x;
public void EigenvalueCalc(Matrix InputMatrix)
{
EigenvalueDecomposition somematrix = new EigenvalueDecomposition(InputMatrix);
Matrix S = somematrix.getV();
System.out.println("V = " + S);
// Compute Evals and e-vecs
// Print out
}
当我创建一个矩阵,填充值,然后尝试在下一段代码中使用它时,我收到有关不兼容文件类型的错误,并且 Matrix_For_Eval_Calc 无法转换为矩阵。我想这是因为没有返回矩阵,但不知道如何解决这个问题。
非常感谢任何建议。
编辑:
import Jama.Matrix;
import Jama.EigenvalueDecomposition;
import Jama.*;
import java.util.Scanner;
/**
* Code to generate a 2x2 matrix then find its eigenvalues and eigenvectors
* Check eigenvalue computation using trick for 2x2 case
* ^(only possible for 2x2, not in general possible for general nxn)
*/
public class MatrixForEvalCalc
{
// instance variables - replace the example below with your own
public Matrix A;
// Create empty 2x2 array
/**
* Constructor for objects of class EigenvalueProblem
* Input elements in array
* Fill in elements of 2x2 matrix
*/
public void populateMatrix()
{
// initialise instance variables
// Prompt User Input for a_1,1 a_1,2 a_2,1 and a_2,2
Scanner in = new Scanner(System.in);
System.out.println("Enter the element a_{1,1}: ");
double a_11 = in.nextInt();
System.out.println("a_{1,1} = " + a_11 );
System.out.println("Enter the element a_{1,2}: ");
double a_12 = in.nextInt();
System.out.println("a_{1,2} = " + a_12 );
System.out.println("Enter the element a_{2,1}: ");
double a_21 = in.nextInt();
System.out.println("a_{2,1} = " + a_21 );
System.out.println("Enter the element a_{2,2}: ");
double a_22 = in.nextInt();
System.out.println("a_{2,2} = " + a_22 );
double[][] array = { {a_11 , a_12} , {a_21 , a_22} };
this.A = new Matrix(array);
// return A;
}
}
第二部分
import Jama.Matrix;
import Jama.EigenvalueDecomposition;
import Jama.*;
import java.util.Scanner;
/**
* Write a description of class EvalCalculation here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class EvalCalculation
{
// instance variables - replace the example below with your own
//private int x;
public void eigenvalueCalc(Matrix inputMatrix)
{
EigenvalueDecomposition someMatrix = new EigenvalueDecomposition(inputMatrix);
Matrix S = someMatrix.getV();
System.out.println("V = " + S);
// Compute Evals and e-vecs
// Print out
}
}
我创建一个矩阵并填充它。然后使用您建议的输入
MatrixForEvalCalc matrixWrapper = new MatrixForEvalCalc();
matrixWrapper.PopulateMatrix();
EigenvalueCalc(matrixWrapper.A);
然后我得到输出V = Jama.Matrix@1b213c5
关于如何使其正确输出矩阵有什么建议吗?
最佳答案
注意PopulateMatrix()
的返回类型:
public void PopulateMatrix() { ... }
您说它不返回任何内容,将其设置为void
,因此当您尝试返回Matrix
时,您会收到一条错误消息,指出这是意外的返回类型。
如果您想从 PopulateMatrix()
返回一个 Matrix
,您应该将其返回类型更改为 Matrix
:
public Matrix PopulateMatrix() {
// rest of the code
double[][] array = { {a_11 , a_12} , {a_21 , a_22} };
Matrix A = new Matrix(array);
return A;
}
但这也许并不完全是您想要的。您已经声明了一个实例字段Matrix A
。当您执行 Matrix A = new Matrix(array) 时,您将创建一个具有相同名称的局部变量,而不是为实例字段分配值。如果您想稍后执行,可以将返回类型保留为 void
:
public void PopulateMatrix() {
// rest of the code
double[][] array = { {a_11 , a_12} , {a_21 , a_22} };
this.A = new Matrix(array);
}
并直接访问该字段(因为您将其公开):
Matrix_For_Eval_Calc matrixWrapper = new Matrix_For_Eval_Calc();
matrixWrapper.PopulateMatrix();
EigenvalueCalc(matrixWrapper.A);
顺便说一句,在命名变量、方法和类时,您应该尝试遵循 Java 约定:
InputMatrix
应为 InputMatrix
。PopulateMatrix()
应为 populateMatrix()
,EigenvalueCalc()
应为 eigenvalueCalc()
。Matrix_For_Eval_Calc
应为 MatrixForEvalCalc
。关于Java JAMA 不兼容无法转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29932021/
我有一个为 Firefox 3.6 编写的附加组件,现在我正在将其升级到 Firefox 4.0,同时尝试使其与 3.6 兼容。有没有人有尝试这样做的经验,或者关于如何在代码变得太意大利面条式的情况下
我已经安装了 Cassandra 2.0.1 并想在我的应用程序中使用 Astyanax Java API。我在维基上看到了 Cassandra 兼容性表,上面写着 Astyanax 使用 Netfl
是否可以使纯粹在 VBScript(无 COM 对象)中实现的自定义容器类与 For Each 语句一起使用?如果是这样,我必须公开哪些方法? 最佳答案 简而言之,没有 为什么?创建一个可枚举的集合类
我这里的代码很少 int b=3; b=b >> 1; System.out.println(b); 它工作得很好,但是当我将变量 b 更改为 byte、short、float、double 时它包含
我们有一个 Java 客户端,它使用 corba 调用多个第三方系统。这些是实现同一组接口(interface)的不同系统。我们获得了使用这些接口(interface)的库(jar 文件)。例如,这些
我知道从技术上讲 HTML5 是一个“实时规范”,但我想知道它是否符合在类名中添加尾随空格的规定。我没有在规范中看到任何对这种情况的引用,但我的一个队友说它是无效的。也许我错过了什么? 修剪这些空间会
我在 Linux x86-64 上用 C 语言编程。我正在使用一个库,它通过原始 clone 创建多个线程系统调用而不是使用 pthread_create .这些线程运行库内部的低级代码。 我想钩住这
我希望用汇编程序编写一个可启动程序,能够发送和接收网络数据包。我不想使用任何库,我想自己创建它(并在这样做的同时学习)。不幸的是,我无法找到有关最低级别的网卡通信(发送原始套接字)的任何信息。我相信有
是否有除 fixed scoping 之外没有任何更改的 CoffeeScript 分支,以便它在很大程度上与 CoffeeScript 兼容(如果代码没有外部变量赋值则完全兼容)?我会考虑使用可接受
这个问题已经有答案了: Why is BiConsumer allowed to be assigned with a function that only accepts a single para
我的 Java 应用程序需要一个高性能主内存数据库 1] 请建议数据库 -符合 JDBC -独立(即平面文件) -支持内存表 -高性能 -B-TREE索引 2] JAVA中是否有任何技术可以在程序运行
我通常会找到一些以char*作为参数的函数,但是我听说在C++中更推荐std::string。如何将std::string对象与以char* s为参数的函数一起使用?到目前为止,我已经知道了c_str
我正在移植我的一个旧 javascript 文件以与 requireJS 兼容。这是以前代码的样子。 // effect.js (function(exports){ // shorthand
在今天更新我的 SDK 之前,我有工作代码(为了将来引用,请查看问题询问日期)。 .getMap 曾经发出警告,表明它已被弃用,但现在它甚至不被识别为有效输入。我假设这是因为 API 24(Andro
根据 this reference sheet on hyperpolyglot.org , 下面的语法可以用来设置一个数组。 i=(1 2 3) 但是我在 dash 上遇到错误,它是 Ubuntu
我的 MacBook 上安装了 MYSQL 8.0.12(下载版本)。当我尝试转储 mysql40 的兼容版本时,收到错误 Invalid mode to --known: mysql40。我 100
您好,我正在更改我的版本控制系统,我调查了 perforce 是否与 bcm 补救措施兼容。有谁知道其他版本的控制系统也与 bcm 补救措施兼容?? 最佳答案 BMC Remedy 会更接近 Clea
我需要在 python 中的图像上绘制一般坐标网格。我可以计算网格线的像素坐标,因此我只需要一个能够将它们绘制为图像顶部的虚线 的模块。图像以 numpy 数组的形式出现,因此我需要能够在这些格式和绘
库接受文件输入的“传统”方式是做这样的事情: def foo(file_obj): data = file_obj.read() # Do other things here 客户端代
代码 Untitled Document #topDropDownMenu { position: relative;
我是一名优秀的程序员,十分优秀!