不知道大家有没有遇到过,有时候当我们从运行完成一个大程序后,我们只想要选取某个值进行一系列的调试,这时我们就会自然而然的想要复制从工作区得到的结果。然而这里在某些极端情况下,这种操作会人为地引入错误。这里记录一下。
比如我们得到了一个一维数组存放着以上数据。我们可以看到matlab中工作区存放的数据精度默认显示到小数点后4位 如果我们想要查看更精确的值,只需要在对应存放数据的单元格上双击,如上图中单元格1
中的显示,此时数据显示到了小数点后15
位,之前我们提到了,matlab
只能够判断精度到小数点后16
位的地方,详见matlab判断两个数据是否相等的相关问题。此外,如果我们直接复制这一行数据到matlab
中,结果如下(这里我们仅展示前五个数据):
我们可以看到,此时数据自动取了大约值,小数点后自动保留了14
位精度,对第15
位进行了四舍五入。因此,我们说,如果我们获取到的结果为整数或者小数点后的精度位没有那么多的时候,我们可以直接复制工作区中的结果并在matlab中进行使用,例如:创建一个其他的新数组操作。但是当小数点后的精度位太多的时候,这种操作会人为引入误差值,最终可能导致程序错误。
这里提及一下如何快速复制工作区中的数据,并复制产生新的数组,从上图中我们可以看到,从工作区中直接复制出来的值会自动带上数组的中括号[]
,然而每个数值之间用,
分隔开,这并不符合matlab
中数组生成的格式,正确的应该使用 空格
。因此我们在复制操作完成后可以进行以下操作来完成新数组的创建。如图:
我们使用组合键的CTRL+F
打开上图中的窗口,将所有的逗号替换为空格即可。(记得点击Replace all按钮)。这样新数组的创建就完成了。
当然最推荐的方法是,我们可以先使用一个主程序生成所需要的数据值,使用clear
释放所有其他我们不需要的数值,只保留我们需要的数值在工作区,并调用另一个我们需要使用的程序进行运算操作。 后续有空了会补充。
码字不易,如果大家觉得有用,请高抬贵手给一个赞让我上推荐让更多的人看到吧~