1

我有大量向量,每个形式都是[a,b,c,d].

对于每个向量,我想返回结果[a,b,c,d,a+b^2+c^3+d^4]。这样做的最佳方法是什么?

例如,假设我的向量是V = [ [1,2,3,4], [5,6,7,8], [9, 10, 11, 12] ]. 最好的方法是定义一个函数,例如:

test( W ) = for( i=1, #W, print( [ [W[i][1],W[i][2],W[i][3],W[i][4],W[i][1]+W[i][2]^2+W[i][3]^3+W[i][4]^4] ] ) )?

(请记住,在实践中,我还会收集更多的向量)

这感觉像是一种天真的方法,那么有更好的方法吗?特别是,这是最快的方法吗?有没有更好的方法来存储我的向量集合?

4

1 回答 1

1

使用矩阵来存储向量的向量。然后只需附加包含指数总和的新列。请参阅示例:

V = [[1,2,3,4], [5,6,7,8], [9, 10, 11, 12]];  /* your vector of vectors */

M = matconcat([V[1]; V[2]; V[3]]);
M_log = log(M);

matconcat([M, M[,1] + exp(2*M_log[,2]) + exp(3*M_log[,3]) + exp(4*M_log[,4])])
> [1  2  3  4 288.00]
> [5  6  7  8 4480.00]
> [9 10 11 12 22176.00]
于 2021-01-14T14:43:43.590 回答