我对使用Jama处理矩阵是个新手。我的问题是,当我使用det()方法(与LUDecomposition类相关)时,它会给出"Matrix must be square"。好的,我的矩阵是三角形的,但是对于LUDecomposition,它应该是方阵。我的代码如下所示
public double findDeterminant(Matrix mtrx) {
LUDecomposition dec = new LUDecomposition(mtrx);
det = dec.det();
return det;
}
我正在寻找关于如何继续在C++中构建这个类层次结构的建议。
基类是矩阵:
class Matrix
{
protected:
int rows;
int columns;
double* values;
public:
\\lots of stuff goes here. bla di bla di bla.
virtual Matrix operator+(const Matrix& addend) const;
\\etc.
}
平方矩阵是从矩阵继承来的
class Squarematrix : public Matrix
{
public
我要在Excel VBA中创建一个2D方阵
Dim Matrix(0 To Nrows, 0 To Ncols) as double
然后我将它作为参数ByRef传递给一个函数库,
My_foo(Matrix(0,0))
它调用C++代码。在C++代码中,我想访问矩阵以获取值并进行其他操作。为此,我将这些值读取为一维数组,因此我创建了一个索引R*Ncols + C,其中R和C是2D表示中的元素位置
void _stdcall My_foo(double* M, long Nrows, long Ncols){
double Value;
R = 10;
C = 0;
Value = M[
在Java中,我称之为矩阵乘法(用于计算方阵的幂):
// Java
public class Matrix {
// ...
native void power(double[] a, double[] b, int rows, int cols, int exponent);
// ...
}
在C++中,这是通过以下方式实现的:
JNIEXPORT void JNICALL power(JNIEnv* env, jobject o,
jdoubleArray vals, jdoubleArray originalMatrix, jint aRows, ji
我不知道在不迭代矩阵的情况下这是否可能,但问题来了。对于任何给定的方阵,说'M',一个特定值说'key‘。
我想计算一个新的矩阵(比如'NM'),
if M(i,j) < key; compute NM(i,j) using formula 1,
if M(i,j) = key; compute NM(i,j) using formula 2, and
if M(i,j) > key; compute NM(i,j) using formula 3
运算的输出必须是与M相同维数的新方阵。希望问题是清楚的。
提前感谢
给定可能共享n个项目子集的m个出价,我希望找到存储出价之间冲突的最佳方法,并检查两个出价是否冲突(即,它们至少共享一个项目)。到目前为止,我已经尝试了一个维度为m x m的矩阵,它不是最优的。我的问题可能有数以千计的出价,因此当我使用方阵实现时,我经常得到错误"Java out out memory space“。然后,我尝试使用三角形矩阵(因为原始冲突矩阵是对称的),但没有摆脱内存问题!
还有更好的主意吗?
最好的编码方式是什么?
谢谢。
用给定字符串中的字母垂直逐列打印方阵,用space.the分隔的重复字母计算方阵的大小,根据填充给定字符串中的字符所需的单元格计算。
示例:
输入(字符串):
HELLOWORLD
输出(方阵):
---0 1 2 3
0 H L R
1 E O L
2 L W D
3 --O
我的c程序:
void main()
{
char arr[4][4],a[]="HELLOWORLD";
int i,j,n=0;
clrscr();
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
我试图使用R中的盒计数来计算由二进制矩阵表示的对象的分形维数(完全由1s和0填充的512 x 512矩阵)。当然,我发现了问题,但这个问题与我的问题不一样,答案也很平淡无奇。我不熟悉盒计数的数学细节,但我熟悉它在计算分形维数中的效用。尽管如此,R中一些声称计算盒数维的函数背后的大部分文档都是以一些有点超出我头的方式来解释的(据我在网上所读的,我并不是唯一一个)。我很好奇这个网站上是否有人有过这些程序的经验,以及他们是否能分享他们的智慧?
编辑
我试图分析的数据是二进制矩阵的形式,其中唯一的非零项是1。这样一个矩阵的例子如下:
A = matrix(c(0,0,0,0,0,0,1,0,0,1,1
假设我有那种输入数据--一个带有长格式数据的data.frame文件,并且只有Species_A和Species_B之间的比较,如下所示:
Species_A Species_B values
A B 58
A C 64
A D 78
A E 32
B C 10
B D 12
B E 54
C D 99
C E 84
D E 42
我想知道如何才能轻松地将输入文件转换成方阵。
A B C D E
A 100 58 64 78 32
B 58 100 10 12 54
C 64 10 100 99 84
D 78 12 99 100
我想在Eclipse中用Java做一个程序,告诉我,如果我能做三角形的话。这是我的密码:
import java.io.IOException;
public class haromszog {
public static void main(String[] args) throws IOException {
int a;
int b;
int c;
System.out.print("Please insert the 'a' side of the triangle:");
a
到目前为止,我知道特征没有为三角矩阵或对称矩阵提供任何特殊的优化运算。而且,它也不对这些矩阵使用任何填充存储。三角矩阵和对称矩阵都被认为是正规矩阵。但本征有的概念。但在本征文献中,他们提到,它们对对称矩阵和三角矩阵都执行优化操作。我也不明白他们说的The opposite triangular part is never referenced and can be used to store other information是什么意思
TriangularView提供了密集矩阵的三角形部分的视图,并允许对其执行优化操作。相反的三角形部分永远不会被引用,并可用于存储其他信息。
对于对称
我正在研究matlab 2014,我有一个矩阵5124x2,我想提取所有的2562个方阵。我发现唯一的解决方案是使用mat2Cell,但它对我不起作用。我真的不需要一个单元格数组,我想要的只是所有的方阵
%example of data
A = rand(5124,2);
C = mat2cell(A,2,2*ones(2562,1));
我得到以下错误:
Error using mat2cell (line 106)
Input arguments, D1 through D2, must sum to each dimension of the input matrix size, [51