1

如何在 gnuplot 中使用二维数组?我在互联网上找不到类似的东西,在用户手册上也找不到。

4

1 回答 1

0

我发现这个非常肮脏的解决方法,但我确实希望那里有更好的东西。

在 gnuplot 的新版本中(至少从 4.6 版开始,尽管这可能在旧版本中也适用)您可以通过三元运算符定义 case 函数。使用它来定义一个行为类似于数组的函数。

假设您的数组很简单

A = 1 2
    3 4

然后你可以定义

A(i,j) = ( i == 1 ? A1(j) : i == 2 ? A2(j) : 'error')
A1(j)  = ( j == 1 ? 1 : j == 2 ? 2 : 'error')
A2(j)  = ( j == 1 ? 3 : j == 2 ? 4 : 'error')

这也可用于定义关联数组(例如ij也可以是字符),但是在运行时更改此“数组”会非常麻烦,因为每次要更改条目时都必须重新定义整个行函数。

也就是说,如果数组在运行时发生变化,那么您可能会发现最好声明

A11 = 1; A12 = 2; A21 = 3; A22 = 4
A1(j)  = ( j == 1 ? A11 : j == 2 ? A12 : 'error')
A2(j)  = ( j == 1 ? A21 : j == 2 ? A22 : 'error')

并根据需要重新定义变量Aij

于 2013-07-26T18:28:15.653 回答