问题标签 [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.
java - 如何使用 JAMA 将两个一维矩阵相乘?
这可能是一个有点愚蠢的问题,我也可能误解了解决这个问题的最佳方法,但我本质上想要做的是以下几点:
我想将以下矩阵相乘得到结果-0.8。但是,理想情况下,我希望使用 JAMA 函数来执行此操作。到目前为止,我有以下内容,我想我快到了,这只是我坚持的最后一步..
对此的任何帮助将不胜感激。提前致谢!
java - 使用 Jama 库的矩阵乘法
我想使用 Jama 库将 2 矩阵相乘,但它返回:
我的代码:
java - 带有 JAMA 的 Java SVD 或其他
我有一堆点,我需要最合适的线。我正在使用 JAMA,但我不知道为什么,有些东西不起作用。可能是我不明白它是如何工作的。我有一个 Nx3 矩阵(这是 JAMA svd 支持的),我从 Svd 获得了正确的矩阵 V。我需要的向量是对应于最大奇异值的正确奇异向量(行或列?)。这个向量应该代表主方向。
每个向量都应该有 y 作为最大的正值,x 可以是正的也可以是负的,z 应该是负的。但有时我得到的向量的 y 值为负,或者无论如何它指向错误的方向。
我的点云非常规则,几乎都沿着 y 轴定位(z 小且为负)。所以主要方向应该很容易找到。但它仍然无法正常工作。
在这种情况下,我得到了右矩阵 V 的行向量(我也尝试了列向量)。我已经从“pointSet”中减去了质心。
我想也许我没有考虑什么。Idk 也许我应该使用另一种技术或另一个库。
java - 在 Java 中使用 Jama 进行 LSA 的问题
我正在使用 jama 包来查找 lsa 。我被告知要减少维度,因此在这种情况下我将其减少到 3 并且我重建了矩阵。但是得到的矩阵与我给系统的矩阵非常不同
这是代码
仅包含 3 个文件的示例输出,其中两个文件相似
svd 之后的数组:
java - java中svd的问题
我经历了 jama 和 colt(我在 java 中编码)。他们都希望我使用数组,使得行数多于列数。
但是在潜在语义分析(LSA)的情况下,我有 5 本书,总共有 1000 多个单词。当我使用术语文档矩阵时,我得到一个 5*1000 矩阵。
由于这不起作用,我被迫转置矩阵。在转置时,我使用 1000 * 5 。使用 1000*5 当我执行 svd 时,我得到一个 5*5 的 S 矩阵。为了执行降维,这个 5*5 矩阵看起来很小。
可以做什么?
java - 如何加快这段代码?微积分遍历矩阵的行和列
我有一段代码通过遍历矩阵的行和列来对矩阵执行计算。所执行的微积分是余弦距离测量,带有我在 Internet 上找到的代码(现在无法检索链接)。
可以有 10,000 行和列。矩阵是对称的,所以我只需要迭代它的一半。值是浮动的。
问题:它非常慢(似乎需要 3 到 6 个小时)。谁能指出我的改进?谢谢!
注意代码:它使用抽象类来提高灵活性:这样,在一个单独的类中定义的余弦计算可以很容易地被另一个类替换。
编码:
定义要完成的计算的类:
java - 尝试压缩图像时出现彩色像素(包括图片)
我正在尝试使用奇异值分解来压缩给定的图像。我以为我拥有它,直到我注意到在整个过程中不断出现垃圾彩色像素。
右上角显示的数字显示了迭代次数,其中 0 是原始图像。
这是一个常见的错误吗?有什么我想念的吗?
我认为这可能与我的数学本身有关。我正在使用 JAMA,这是一个为我处理这个问题的 java 矩阵包。以下是我对每次迭代的实现:
基本上我正在做的(或试图做的)是:
我的实现是否有明显的问题,或者错误可能是由于 JAMA 执行 SVD 的方式造成的?根据我的测试,矩阵 U 和 V 中值的符号在某些行中与 Wolframalpha 或 Matlab 生成的值不同。
任何帮助表示赞赏。
谢谢,
贾斯蒂安
java - 用Java将两个矩阵相乘
我尝试将 2 个矩阵相乘。我尝试使用 R 软件:检查此线程:在 R 中乘以两个矩阵
现在我尝试在 Java 中做同样的事情。
我将 Jama 库用于矩阵。
我的幂函数
什么时候显示 mat1 我得到:
代替
和我一起做
}
我明白了
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 吗?
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错了吗?!