本文介绍了如何使用 RP Photonics 的软件将数据导出到文件(全部从文件导入)。某些脚本命令和功能为您提供了最大的灵活性。
经常被问到是否可以从我们的软件中导出数据,以便在其他软件(如 MatLab 或 Origin)中进一步处理它们。因此,下面这篇文章为该主题撰写一篇文章。首先问以下问题:
确定真的要导出数据吗?
这个问题很有用,因为将数据传输到其他软件有不好之处:
· 您想要将多个数据合并到一个图中。
· 您想向图表添加更多功能(例如,各种标签,其他图解等)。
· 您想使用修改后的详细信息(如字体类型和字体大小)来更改图的样式。
· 您想要生成更高分辨率的图形,例如在印刷出版物中使用。
为什么会有这些不好的原因?仅仅是因为通常在我们的软件中直接执行这些操作更为方便,避免了导出数据,启动其他软件,导入软件的麻烦,并且需要再次执行计算时从最开始进行所有操作。我们就不一一讨论如何在我们的软件中执行上述操作的详细信息。当然,还有导出数据的充分理由,例如:
· 您可能需要存储耗时的计算结果,以备后用。(当然,您也可以使用我们的软件读取这些数据,以便进一步处理和绘制它们。)
您仅需单击一下即可查看数值数据,还可以自由修改数据点的格式,因为这是由简单的数学表达式列表定义的。很容易实现以下目标:
更改格式表达式后,只需按“重新格式化”按钮,显示的结果将相应地重新计算。
然后,您可以将数据复制到 Windows 剪贴板或将数据保存到文件。
如果您已经拥有我们的软件并想要了解该功能(除了 RP Fiber Calculator,我们所有程序现在都提供了该功能)这项新功能可能会受到很多人喜爱,但显然不能满足所有潜在需求。一些例子如下:
因此,需要其他导出数据的方式,如下所述。(这些功能已经存在了很长时间,但是,如果您的版本太旧,则可能需要先进行更新。)
假设,我们要使用我们的软件 RP Fiber Power 生成一个文件,该文件描述光纤放大器光纤中泵浦和信号功率的变化。可以使用几行脚本代码来完成此操作,如下所示:
FileName $:=“泵和信号vs position.
txt”
写“;位置(m),泵浦功率(W),信号功率
(dBm)”,>(文件名$)
对于z:= 0至L_f步骤0.1
写[z:f1,“,”,P(泵,z):
d6,“,”,
10 * lg(P(signal,z)/ mW):
f1],>>(FileName $)
显然,通过这种方式,您可以完全控制细节,例如数据点的步长,值的舍入,分隔符等。
请注意,即使在RP Fiber Power中使用交互式表单时,也可以使用此类命令:表单包含可在其中输入一些脚本代码的字段。
通过在表达式中使用某些函数而不是命令,您可以享受更大的灵活性。这些专门功能对于将数据输出到文件很有用;您甚至可以导出或导入二进制数据。函数和命令之间的区别在于,可以在任何数学表达式或字符串表达式中调用函数。这样的表达式可以包含在脚本命令中。然后,您还可以从我们的数学引擎中的功能更加强大的控制结构中受益。
在下面的示例中,向您展示一个示例,其中在用户定义的函数中使用了这些函数,而这次我们以二进制形式导出数据:
SavePumpAndSignal(FileName $):=
开始
全球允许所有人;
var f;
f:= open_file(FileName
$,“ wb”);{打开以写入二进制文件}
对于z:= 0至L_f步骤0.1
write_bin(f,P(pump,z),
10 * lg(P(signal,z)/ mW));
close_file(f);
结尾
定义完之后,您可以在脚本的后面部分轻松地调用该函数。例如,您可以使用一个循环来生成多个文件,每个文件用于不同的信号输入功率:
计算
对于P_in_dBm:= -30至-20步骤2
开始
set_P_in(signal,expd(P_in_dBm / 10)* mW);
{设置信号输入功率}
SavePumpAndSignal(“泵和信号,输入”
str(P_in_dBm:d6) “ dBm.txt”);
结尾
您会看到,这些功能为您提供了极大的灵活性。您可以生成任何格式的文本文件和二进制文件。当然,您可以将任何数字或字符串数据序列写入二进制文件。另外,您可以在单精度和双精度数据之间进行选择。
与上面类似,如果您想知道文件格式,则可以导入最复杂的文件类型。例如,先从此类文件中读取多少个数据点,然后读取适当数量的点,之后从结果中计算出最小值,最大值,平均值和均方根值,这都是没有问题的。