查看单个帖子
旧 2019-12-10, 16:49   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 在Matlab的单元格模式下,有没有办法调用子函数?

说我有以下代码:

% Cellmode_subfunction_test.m %% Cell 1 foo(1); %% Cell 2 foo(2); %% Definition of the foo subfunction function foo(num) disp(['num=' num2str(num)]); 如何通过最后定义的子功能测试单元格1和单元格2?

编辑:基本上,此示例中的每个单元都执行一些冗长的计算,因此我想分别测试和调试它们。我正在使用子功能来抽象和重用常见功能,并且由于到目前为止,此功能仅在此特定应用程序中使用,因此我真的不想将foo放在单独的m文件中。

Edit(2):我只记得我隐约记得单元格模式仅适用于matlab脚本,不适用于函数m文件,并且此类脚本不允许使用子函数和嵌套函数。因此,我要的可能是不可能的。

尽管下面给出的匿名函数解决方案可能仅在单个表达式函数中起作用,但在某种程度上可能是限制性的,但实际上满足了我希望做的事情,因此,我接受了它作为我的问题的解决方案。


回答:
更正:

我误解了您对CELL一词的使用。我很抱歉。看来您只想在命令行中定义一个函数而不将其保存到.m文件。为此,您可以使用匿名函数:

foo = @(num) disp(['num=' num2str(num)]); 然后,您可以像使用其他任何函数一样使用“ foo”。



更多&回答...
poster 当前离线   回复时引用此帖