问题标签 [jama]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1791 浏览

java - 如何使用 JAMA 将两个一维矩阵相乘?

这可能是一个有点愚蠢的问题,我也可能误解了解决这个问题的最佳方法,但我本质上想要做的是以下几点:

我想将以下矩阵相乘得到结果-0.8。但是,理想情况下,我希望使用 JAMA 函数来执行此操作。到目前为止,我有以下内容,我想我快到了,这只是我坚持的最后一步..

对此的任何帮助将不胜感激。提前致谢!

0 投票
2 回答
5787 浏览

java - 使用 Jama 库的矩阵乘法

我想使用 Jama 库将 2 矩阵相乘,但它返回:

我的代码:

0 投票
2 回答
1018 浏览

java - 带有 JAMA 的 Java SVD 或其他

我有一堆点,我需要最合适的线。我正在使用 JAMA,但我不知道为什么,有些东西不起作用。可能是我不明白它是如何工作的。我有一个 Nx3 矩阵(这是 JAMA svd 支持的),我从 Svd 获得了正确的矩阵 V。我需要的向量是对应于最大奇异值的正确奇异向量(行或列?)。这个向量应该代表主方向。

每个向量都应该有 y 作为最大的正值,x 可以是正的也可以是负的,z 应该是负的。但有时我得到的向量的 y 值为负,或者无论如何它指向错误的方向。

我的点云非常规则,几乎都沿着 y 轴定位(z 小且为负)。所以主要方向应该很容易找到。但它仍然无法正常工作。

在这种情况下,我得到了右矩阵 V 的行向量(我也尝试了列向量)。我已经从“pointSet”中减去了质心。

我想也许我没有考虑什么。Idk 也许我应该使用另一种技术或另一个库。

0 投票
1 回答
568 浏览

java - 在 Java 中使用 Jama 进行 LSA 的问题

我正在使用 jama 包来查找 lsa 。我被告知要减少维度,因此在这种情况下我将其减少到 3 并且我重建了矩阵。但是得到的矩阵与我给系统的矩阵非常不同

这是代码

仅包含 3 个文件的示例输出,其中两个文件相似

svd 之后的数组:

0 投票
1 回答
258 浏览

java - java中svd的问题

我经历了 jama 和 colt(我在 java 中编码)。他们都希望我使用数组,使得行数多于列数。

但是在潜在语义分析(LSA)的情况下,我有 5 本书,总共有 1000 多个单词。当我使用术语文档矩阵时,我得到一个 5*1000 矩阵。

由于这不起作用,我被迫转置矩阵。在转置时,我使用 1000 * 5 。使用 1000*5 当我执行 svd 时,我得到一个 5*5 的 S 矩阵。为了执行降维,这个 5*5 矩阵看起来很小。

可以做什么?

0 投票
1 回答
533 浏览

java - 如何加快这段代码?微积分遍历矩阵的行和列

我有一段代码通过遍历矩阵的行和列来对矩阵执行计算。所执行的微积分是余弦距离测量,带有我在 Internet 上找到的代码(现在无法检索链接)。

可以有 10,000 行和列。矩阵是对称的,所以我只需要迭代它的一半。值是浮动的。

问题:它非常慢(似乎需要 3 到 6 个小时)。谁能指出我的改进?谢谢!

注意代码:它使用抽象类来提高灵活性:这样,在一个单独的类中定义的余弦计算可以很容易地被另一个类替换。

编码:

定义要完成的计算的类:

0 投票
1 回答
1331 浏览

java - 尝试压缩图像时出现彩色像素(包括图片)

我正在尝试使用奇异值分解来压缩给定的图像。我以为我拥有它,直到我注意到在整个过程中不断出现垃圾彩色像素。

垃圾像素

右上角显示的数字显示了迭代次数,其中 0 是原始图像。

这是一个常见的错误吗?有什么我想念的吗?

我认为这可能与我的数学本身有关。我正在使用 JAMA,这是一个为我处理这个问题的 java 矩阵包。以下是我对每次迭代的实现:

基本上我正在做的(或试图做的)是:

我的实现是否有明显的问题,或者错误可能是由于 JAMA 执行 SVD 的方式造成的?根据我的测试,矩阵 U 和 V 中值的符号在某些行中与 Wolframalpha 或 Matlab 生成的值不同。

任何帮助表示赞赏。

谢谢,

贾斯蒂安

0 投票
1 回答
1403 浏览

java - 用Java将两个矩阵相乘

我尝试将 2 个矩阵相乘。我尝试使用 R 软件:检查此线程:在 R 中乘以两个矩阵

现在我尝试在 Java 中做同样的事情。

我将 Jama 库用于矩阵。

我的幂函数

什么时候显示 mat1 我得到:

代替

和我一起做

}

我明白了

0 投票
0 回答
209 浏览

java - Jama getS 给出异常

我正在将 SVD 应用于我已经创建的术语文档矩阵。矩阵是以下形式的双精度数组:

公共静态双[][] tdidf;
tdidf = new double[listOfFiles.length][keywordList.size()];

但是当我使用苹果 svd 时:

公共无效计算SVD()
{
矩阵A =新矩阵(tdidf);奇异值分解 svd = A.svd();
矩阵 U = svd.getU();
矩阵 S = svd.getS();
}

我收到一个错误:

线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: 53
at Jama.SingularValueDecomposition.getS(SingularValueDecomposition.java:511)
at TDIDF_Matrix.computeSVD(TDIDF_Matrix.java:119)
at Jama.main(Jama.java:191)

在计算 SVD 之前我需要转置 A 吗?

0 投票
1 回答
723 浏览

java - java SVD JAMA 错误结果

我有这个数组

我想获得 SVD(奇异值解压缩),这是代码

我使用了 JAMA 库,我得到了这些结果

但是V错了,应该是这样的

V = -0.49446664222485476 0.6491757618976977 -0.5779909773443018
-0.6458223761096932 0.7194469174866516 -0.2555574131873014
-0.581735505399926 0.24691489036406603 0.7749947346102383

真的这是一个拥抱错误,因为在multibluein USV之后我得到了这个matirx,看看E-16

请帮帮我,我该怎么办,哪里错了,JAMA错了吗?!