如何将脚本转换为函数?

2次浏览(过去30天)
马蒂斯栖息
马蒂斯栖息 2021年8月10日
回答: Kshitij Chhabra 2021年8月13日
大家好,
我对Matlab很陌生,我似乎不理解关于函数的一个关键细节。我有下面的一段代码,它建立了一个连接到我的PicoScope 2204A:
%%加载配置信息
PS2000Config;
%%设备连接
创建一个设备对象。
ps2000DeviceObj = icdevice(“picotech_ps2000_generic.mdd”);
将设备对象连接到硬件。
连接(ps2000DeviceObj);
代码运行得非常好。但当我试图把它放在一个函数(我想使用它作为一个回调函数的GUI与应用程序设计器),像这样:
函数startPicoScope
%%加载配置信息
PS2000Config;
%%设备连接
创建一个设备对象。
ps2000DeviceObj = icdevice(“picotech_ps2000_generic.mdd”);
将设备对象连接到硬件。
连接(ps2000DeviceObj);
结束
我得到以下错误:
使用icdevice/connect错误(第114行)
>>执行驱动程序连接代码时出错。
未定义变量“ps2000Enuminfo”或类“ps2000Enuminfo. enps2000range . ps2000_50mv”。
>>如果此错误不是仪器错误,请使用mididit检查驱动器。
我很确定这与变量如何存储在函数中有关,但我不知道如何解决这个问题。如果你们中有人知道我挣扎的答案,我会非常感谢你们的帮助。
欢呼,
马蒂斯
1评论
为副总经理
为副总经理 2021年8月11日
编辑:为副总经理 2021年8月11日
我没有信息通信技术,完全不熟悉这些驱动程序对象是如何使用的。我也不熟悉AppDesigner约定,因为它不能在我的环境中运行。从远处看,在我看来这是一个可变范围的问题。至少对于GUIDE和编程式GUI, GUI代码调用的函数都在GUI自己的工作空间中操作,不能直接访问基本工作空间中的内容。还有一些类似的问题指向这个方向。
但我不知道这是否有帮助。

登录评论。

接受的答案

Kshitij Chhabra
Kshitij Chhabra 2021年8月13日
根据我的理解,您之所以面临这个问题,是因为函数和基本工作区具有不同的作用域。仪表控制驱动程序从基本工作空间提取信息,因此您可能会得到这个错误。
如需参考,可参考 MATLAB的答案。
此外,要使用它作为回调,您可以参考MATLAB文档 在这里

更多答案(0)

类别

了解更多迁移指南应用程序帮助中心而且文件交换

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!