【发布时间】:2011-07-27 11:28:00
【问题描述】:
我想创建一个函数function ExtremePoints = AnalyseData( ScanData )。
我希望能够在不传递参数 ScanData 的情况下运行该函数,在这种情况下,我想使用来自 Matlab Workspace 的同名变量。
是否可以在函数体内使用工作区中出现的变量 ScanData?
或者我应该先将变量 ScanData 的内容从工作区保存到 .mat 文件中,然后将该文件加载到函数体中?
【问题讨论】:
-
正如@Edric 已经提到的那样:(强烈)不鼓励这样做,因为您将无法在其他地方正确重用该函数而没有太多痛苦(缺少变量,完全不同的东西存储在@ 987654323@,不太清晰的代码,mlint 不会警告你在
eval或evalin中的错误,...)。所以请帮自己一个忙,不要在不必要的时候使用这些! -
问题是提到的函数更多地用作测试脚本,而不是从命令行窗口启动调用,我想直接从编辑器调用函数,这就是问这个问题的原因.不过感谢您的建议! :)
-
您可以做一些不同的事情。首先,您可以将其设为脚本而不是函数(只需省略
function ...)。然后,所有变量都将成为您的基础工作区的一部分。所以这可能会变得混乱,为了方便起见,您可能需要使用clear variables; close all; clc;之类的东西。或者您可以使用run configurations 功能。但是,在版本控制中或在不同的计算机上跟踪这些是很麻烦的。所以两者各有利弊。
标签: matlab