草庐IT

邻接矩阵和邻接表

全部标签

java - 旋转位矩阵

假设我使用大小为8的字符数组来表示图像的碰撞mask。char的每一位代表一个像素。实际上,我将为64x64矩阵使用long[64]数组。所以一个框将显示为:000000000111111001111110011111100111111001111110011111100000000045度的示例输出应如下所示,但旋转可以是任何度数。这个形状对于45度旋转可能不准确,因为我是用手做的。0001100000111100011111101111111111111111011111100011110000011000还有另一个向右小旋转--10度的示例输出?这些值可能是错误的,因为从数学上讲

矩阵的Java数据结构?

什么是我可以用于我的矩阵的最佳数据结构,它将包含短变量但大多数元素是空的..我可以简单地使用nbyb数组作为矩阵,但问题是我不想浪费内存,因为矩阵中只有几个元素..我打算使用链表或哈希表,但不确定哪个是最好的数据结构以及如何实现它.. 最佳答案 我会实现一个SparseMatrix.使用以行索引作为键的HashMap,然后为实际元素使用HashMap或TreeMap(以列索引为键).如果您正在存储原始类型,我建议您查看TroveJava集合框架。它针对原始类型进行了优化。我建议无论如何都使用它,因为key可能都是原始的。

java - 在java中将二维二进制矩阵转换为黑白图像

我是java新手。我现在有只有1和0的二维二进制矩阵。我想将它保存为具有相同宽度和高度的jpg图像(黑白)。我怎么会意识到这一点?我尝试了下面的代码但失败了,说“java.lang.IllegalArgumentException:image==null!”请帮助我或给我更好的解决方案。非常感谢。publicstaticvoidmain(String[]args)throwsIOException{//resultisdouble[25][33]binarymatrixwithonly1sand0s;intheight=result.length;intwidth=result[0].

java - 适用于 JOGL + 通用矩阵数学的快速 Java 矩阵库?

我有兴趣在JOGL2中编写一个OpenGL应用程序,使用着色器而不是固定功能管道。我需要在CPU端做一些4x4double矩阵数学运算,以替换固定功能管道的推送/弹出/转换业务。同一个应用程序还将包含一些需要对大型矩阵进行操作的机器学习代码。我已经查看了JBLAS的机器学习内容(并且由于我已经将JNI用于JOGL,所以依赖另一个native库的缺点很小),但我不确定它是否是GL的最佳选择-相关矩阵。想法? 最佳答案 你只需要操作4x4矩阵吗?大多数通用线性代数库都针对大型矩阵进行了高度优化,而很少关注较小的矩阵。我写EJML的部分原

java - 使用 MTJ/Netlib( native )的缓慢矩阵乘法性能

我需要将大小为5000x5000的大矩阵乘以20000x20000。我在寻找具有稀疏矩阵但可以进行快速乘法的库时遇到问题。首先,我阅读了上一个关于Java矩阵库性能的问题(PerformanceofJavamatrixmathlibraries?)。基于那里的最佳答案,我决定使用JBLAS,因为它是最快的之一。在我的例子中,乘以5000x5000矩阵大约需要50秒左右,这比Matlab慢很多,但仍然可以接受。问题是矩阵可能非常大(高达20kx20k或更多),但它们通常是稀疏的。矩阵中只有30%的元素是非零元素。JBLAS不提供任何稀疏矩阵实现,因此存储大型密集矩阵所需的内存占用量可能会

java - Java 中基于枚举的表/矩阵

我有两个枚举:level有3个值,criticality有4个值。这两个映射的组合到priority枚举中的8个值之一。该映射是非线性的,将来可能会发生变化。实现采用级别和关键性并输出优先级的静态函数的最佳*方法是什么?*best易于阅读和理解,易于更改且安全,并且不占用性能。考虑到输入域在未来可能会发生变化的解决方案的加分点。到目前为止我考虑的方法:嵌套switch..case。许多行和大量样板代码。如果您忘记在案例中返回一个值,也很容易出错。基本上代码如下所示:switch(bc){caseC1:switch(el){caseE1:returnEmergencyPriority.P

Java 8 矩阵 * vector 乘法

我想知道在Java8中是否有更简洁的方法来使用流执行以下操作:publicstaticdouble[]multiply(double[][]matrix,double[]vector){introws=matrix.length;intcolumns=matrix[0].length;double[]result=newdouble[rows];for(introw=0;row进行编辑。我收到了一个很好的答案,但是性能比旧实现慢了大约10倍,所以我在这里添加测试代码以防有人想调查它:@Testpublicvoidprofile(){longstart;longstop;inttenmi

java - OpenGL 3 (LWJGL) LookAt 矩阵混淆

我正在使用LWJGL学习OpenGL3。我试图实现相当于gluLookAt()的功能,虽然它有效,但我对为什么有些困惑。我承认只是从网络上的各种来源复制这段代码,但经过大量研究后,我认为理解它背后的数学原理,并且我理解LWJGL在做什么。但是“正确”gluLookAt代码在我的应用程序中表现不正确,因为相机似乎转向了错误的方向。我只设法通过转置正交vector来让我的代码工作forward,side,和up(希望我使用的是正确的术语!),我很确定这是错误的...privatestaticfinalVector3fforward=newVector3f();privatestaticfi

Numpy从入门到精通——存读矩阵以及读取矩阵中的数据

这个专栏名为《Numpy从入门到精通》,顾名思义,是记录自己学习numpy的学习过程,也方便自己之后复盘!为深度学习的进一步学习奠定基础!希望能给大家带来帮助,爱睡觉的咋祝您生活愉快!这一篇介绍《Numpy从入门到精通——存读矩阵以及读取矩阵中的数据》文章目录一、利用savetxt、loadtxt存读矩阵二、读取维度为1的矩阵数据2.1获取指定位置的数据2.2截取一段数据2.3间隔取数据2.4倒序取数三、读取多维矩阵数据3.1截取一个多维数组的一个区域内数据3.2截取一个多维数组中,数值在一个值域之内的数据3.3指定的行截取多维数组3.4指定的列截取多维数组四、choice函数抽取数据一、利用

java - 使用邻居递增地计算矩阵中的元素

我有这个Java问题,我怀疑它与更高级别的算法有关,但我的搜索未能得出任何实用的结论。你构造一个数组如下:11112113311464115101051基本上,Ai,j=Ai-1,j-1+Ai-1,j。它应该返回索引(l,c)处的元素:对于(4,1)它应该返回4,(5,2)返回10,等等。我的解决方案很简单,但还不够:staticlongget(intl,intc){long[][]matrix=newlong[l+1][l+1];matrix[0][0]=1;matrix[1][0]=1;matrix[1][1]=1;for(inti=2;i它不适用于较大的l和c值。使用BigInt