0

我正在将 MATLAB 代码移植到 Javascript,我遇到了一些看起来像这样的代码:

MatrixVar(a, b, c, c, i) = y_var(i);

我怎么能MatrixVar在 Javascript 中实现类似的东西?

4

3 回答 3

1

如果您想要精确的语法(带括号),MatrixVar则必须是 JavaScript 中的函数。但它不能是函数,因为您将分配给函数返回的任何内容。

多维数组看起来像arr[a][b][c][c][i],实际上是嵌套数组:

var arr = [];
for(var i=0; i<3; i++) {
    // create new nested arrays
    arr[i] = [];
    for(var j=0; j<3; j++) {
        // populate nested arrays
        arr[i][j] = j;
    }
}

最后,arr将如下所示:

[
    [0,1,2],
    [0,1,2],
    [0,1,2]
]
于 2013-07-29T01:06:02.377 回答
1

您可以使用一个函数来访问您的多维数组索引,如下所示:

鉴于:

var arr = [[[[['foo']]]]];

一个这个助手:

Array.prototype.access = function(){
  var last = this;
  for (var a=0; a<arguments.length; a++){
    last = last[arguments[a]];
  }
  return last;
};

如果你想打印“foo”,arr[0][0][0][0][0]你可以这样做:

arr.access(0,0,0,0,0); //=> "foo"
于 2013-07-29T01:14:00.737 回答
1

使用图书馆。严重地。我不能保证,但是这个看起来不错并且支持 n 维数组:mathjs。另请参阅此相关问题

于 2013-07-29T14:29:17.497 回答