【发布时间】:2015-08-10 13:46:51
【问题描述】:
我目前正在学习如何使用 rbc 库。我有一些硬件返回两个列表:一个是时间,另一个是电压。这是我尝试创建元素的 tcl 行:
$myGraph element create "CH${channel}:${polarity}" -xdata [list [lindex [lindex $myWaveform 2] 0]] -ydata [list [lindex [lindex $myWaveform 2] 1]]
注意:我使用了两次lindex,因为它是一个列表列表,我需要索引到第一个列表才能获取我的数据。
现在,在执行此代码时,我收到以下错误消息:
missing operator at _@_
in expression "1.9e-8 _@_1.902e-8 1.904e-8 1.90..."
现在,我会在此处发布我的列表,但它非常庞大(>4000 个元素)。但基本上你在错误的sn-p中看到的是列表的格式:
"1.9e-8 1.902e-8 1.904e-8 1.90..."
现在,我知道传入的数据是 list 类型的,这就是我要查找的数据,因为我已经对其进行了 llength 函数,它是一个包含 4000 个元素的列表。我不确定它从哪里获取“操作员”,因为列表中没有任何内容位于错误中的“@”位置。我的清单可能有什么问题?
编辑:当我通过控制台手动执行此过程时,它可以工作。为什么它不能在代码中工作?
【问题讨论】:
-
该列表很可能在某个时候传递给
expr命令:它给出了错误消息 f.i.当它得到这样的值列表时。另外,你真的不需要[lindex [lindex $myWaveform 2] 0]:[lindex $myWaveform 2 0]就可以了。 -
我将如何格式化我的列表以便它不会引发此错误?我无法将 rbc 库重写为非用户
expr。 -
如果您的数据通过
expr,它必须由一个表达式组成,即一个值或由运算符连接的多个操作数。您确定该命令需要一个值列表吗? (我对rbc一无所知。) -
我在下面对我自己的问题的回答中发布了解释。虽然它期待一个 >1 个值的列表,但它只得到一个 1 的列表。
标签: list graph tcl operator-keyword