Javascript 将指向数组元素的指针传递给函数
我正在为线性代数中的一项任务编写一个程序,该程序对浮点数的向量和矩阵进行计算 i、 eJavascript 将指向数组元素的指针传递给函数,javascript,Javascript,我正在为线性代数中的一项任务编写一个程序,该程序对浮点数的向量和矩阵进行计算 i、 e 程序的一部分对输入向量执行相同的操作,就像在输入矩阵的指定行上一样,由C++中的函数处理。在C++中,同一函数可以接受向量或矩阵的输入,只要它接受指向特定数组元素的指针;只要指针算法是细致的,并且知道内存布局是以行为主的,它就可以工作。我想知道JavaScript是否也能做到这一点 我可以编写两个函数中的任意一个: i) 需要向量的函数。 在works中传递向量。 但是,传递矩阵不起作用。 我希望传入指针,比
程序的一部分对输入向量执行相同的操作,就像在输入矩阵的指定行上一样,由C++中的函数处理。在C++中,同一函数可以接受向量或矩阵的输入,只要它接受指向特定数组元素的指针;只要指针算法是细致的,并且知道内存布局是以行为主的,它就可以工作。我想知道JavaScript是否也能做到这一点
我可以编写两个函数中的任意一个: i) 需要向量的函数。在works中传递向量。
但是,传递矩阵不起作用。
我希望传入指针,比如说,第二行的第一个元素(包含6.789的元素)。然后通过类似于[0][i]的方式访问整行。但是JavaScript不喜欢这样 ii)需要矩阵的函数。
在工作中传递矩阵。
但是,传入向量不起作用。如果我尝试以v[0][I]的形式访问向量元素,JavaScript不喜欢这样 要么我的语法不正确,要么我正在尝试做一些无法完成的事情 向量和数组的形式不能改变(如展平等),因为程序的其余部分需要它们保持其形式;向量需要保持为向量,矩阵需要保持为矩阵 在JavaScript中,是否可以将指向特定数组元素的指针传递到函数中,然后在函数中将向量(或矩阵行)视为常规数组
如果没有,是否有建议的解决方法?这是否符合您的要求
函数doSomethingWithVectorOrmatrix行(vectorOrMatrix,matrixRow){
常量向量=矩阵行===未定义?向量矩阵:向量矩阵[矩阵行];
返回剂量测定法(aVector);
}
/*使用它作为*/doSomethingWithVectorOrmatrix行(v);
/*或*/doSomethingWithVectorOrmatrix(A,1);
当然,将矩阵存储为平面
数组
,并简单地操作该数组
的给定范围会更有效,这对向量(范围=整个向量)同样有效,但您说您不能更改所使用的数据结构。您在Javascript中没有真正的指针。您始终可以将特定变量传递到函数中,执行计算,然后返回并将其合并回原始数组。这就是你想做的吗?@基诺,这是可能的。理想情况下,我的目标是编写一个函数,可以将矩阵或向量作为输入,而不会显著影响性能。谢谢。好建议。我想首先将矩阵创建为向量,并通过一维引用访问它会更容易。i、 例如,从概念上讲,A可能是一个NROWS x NCOLS 2D矩阵,另存为1D数组,并以[i*NCOLS+j]的形式访问元素A[i][j]。现在更改它将涉及重新编写大部分程序和许多其他子程序。如果你有时间,我仍然建议抽象出矩阵存储的数据结构,其精神是:你可以创建一个类矩阵{get(I,j){}
,然后只需要更改get
方法。您还可以添加getRow(j)
方法,当然还有set(i,j)
method我的意思是set(i,j,v)
v = [3.14159, 2.256, 1.5783, 6.782]
A = [ 9.7 2.333 5.467 5.2123
6.789 4.789 5.671 9.111
1.113 4.562 8.223 5.2125
6.666 7.8181 3.426 4.3567]