⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 formulas_8__data_in_objects.html

📁 语音信号处理软件praat教程:这是一部入门教程
💻 HTML
字号:
<html><head><meta name="robots" content="index,follow">
<title>算式 8. 对象的数据</title></head><body bgcolor="#FFFFFF">

<table border=0 cellpadding=0 cellspacing=0><tr><td bgcolor="#CCCC00"><table border=4 cellpadding=9><tr><td align=middle bgcolor="#000000"><font face="Palatino,Times" size=6 color="#999900"><b>
算式 8. 对象的数据
</b></font></table></table>
<p>
可以用方括号访问某些对象内部的数值。</p>
<h3>
在计算器中访问对象内容</h3>
<p>
下列示范算式的结果可通过<a href="Calculator.html">计算器</a>得到验证。</p>
<dl>
<dt>
<b>Matrix_hello [10, 3]</b>
<dd>
返回名为<i>hello</i>的Matrix(矩阵)对象第10行第3列元素的值。
<dt>
<b>Sound_hello [10000]</b>
<dd>
返回名为<i>hello</i>的Sound(声音)对象第1000个采样点的值(单位:Pa)。
<dt>
<b>TableOfReal_tokens [5, 12]</b>
<dd>
返回名为<i>tokens</i>的TableOfReal(实数表)对象第5行第12列元素的值。
<dt>
<b>TableOfReal_tokens [5, "F1"]</b>
<dd>
返回名为<i>tokens</i>的TableOfReal对象第5行上标签为<i>F1</i>的元素的值。
<dt>
<b>TableOfReal_tokens ["\ct", "F1"]</b>
<dd>
返回名为<i>tokens</i>的TableOfReal对象中标签为<i>\ct</i>的行上标签为<i>F1</i>的列的元素的值。
<dt>
<b>Table_listeners [3, "m3ae"]</b>
<dd>
返回名为<i>listeners</i>的Table(统计表)对象第3行上<i>m3ae</i>列的元素的数值。
<dt>
<b>Table_listeners [3, 12]</b>
<dd>
返回名为<i>listeners</i>的Table对象第3行第12列元素的数值。
</dl>
<p>
对象里没有的元素一律返回0值。</p>
<h3>
插值</h3>
<p>
某些元素包含的值可以通过插值法得出。</p>
<dl>
<dt>
<b>Sound_hallo (0.7)</b>
<dd>
返回Sound对象"hallo"位于0.7秒时刻上的值(单位:Pa),取最接近0.7秒的两个采样点间的线性插值。
<dt>
<b>Spectrogram_hallo (0.7, 2500)</b>
<dd>
返回Spectrogram(三维语图)对象"hallo"位于0.7秒时刻、2500 Hz频率上的值,取最接近目标的四个采样点间的线性插值。
</dl>
<p>
计算插值时,超出对象上下届的元素一律返回0值。</p>
<h3>
在用于修改对象的算式中访问对象内容</h3>
<p>
假设您想用一种麻烦的方法倒转一个名为<i>hello</i>的Sound对象的内容(省事的方法是执行<a href="Modify.html">Modify(修改)</a>选单的<b><i>Reverse(倒转)</i></b>命令)。选中声音,用<a href="Copy___.html">Copy...(复制)</a>命令原地复制出一个新的Sound对象,命名为<i>hello_reverse</i>。选中新建的声音,并执行<a href="Modify.html">Modify</a>选单的<b><i>Formula(算式)</i>...</b>命令。输入如下算式:</p>
<code>
Sound_hello [ncol + 1 - col]<br></code>
<p>
由此例可见,写在[ ]中的索引可以完全由算式充当,而且隐含地使用<i>ncol</i>等固有属性,并通过<i>col</i>等引用位置。还可换一种算式:</p>
<code>
Sound_hello (xmax - x)<br></code>
<p>
条件是<i>xmin</i>为0。第二种方法的优点在于,即便两段声音采样频率不同也能正确执行;缺点在于采样点之间会进行插值,有损音质。</p>
<h3>
在脚本中访问对象内容</h3>
<p>
使用脚本时,写在[ ]中的索引和写在( )中的数值可以完全由算式充当,并包含变量。以下脚本计算一个名为<i>hello</i>的Matrix对象一条对角线上所有元素的和。</p>
<code>
sumDiagonal = 0<br></code>
<code>
for i to Matrix_hello.ncol<br></code>
<code>&nbsp;&nbsp;&nbsp;
sumDiagonal += Matrix_hello [i, i]<br></code>
<code>
endfor<br></code>
<code>
echo The sum of cells along the diagonal is 'sumDiagonal'.<br></code>
<p>
此例也可完全改用动态选单中的命令,写成:</p>
<code>
select Matrix hello<br></code>
<code>
sumDiagonal = 0<br></code>
<code>
ncol = Get number of columns<br></code>
<code>
for i to ncol<br></code>
<code>&nbsp;&nbsp;&nbsp;
value = Get value in cell... i i<br></code>
<code>&nbsp;&nbsp;&nbsp;
sumDiagonal += value<br></code>
<code>
endfor<br></code>
<code>
echo The sum of cells along the diagonal is 'sumDiagonal'.<br></code>
<p>
第一种版本直接访问内容,不仅少3行脚本,执行效率也是后者的3倍。</p>
<h3>指向本页的链接</h3>
<ul>
<li><a href="Formulas.html">算式</a>
</ul>
<hr>
<address>
	<p>&copy; ppgb, December 4, 2002</p>
	<p>&copy; 翻译:徐清白,2005年03月27日</p>
</address>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -