不带括号的Matlab调用函数
Matlab Calling Functions without parentheses
对于 Matlab 脚本调用函数但提供不带括号的参数的情况,正确的名称是什么?
示例:
clear xx
或者,我可以使用括号并使用变量名称传输字符串:
clear('xx')
在谷歌搜索解决方案时如何区分这两种选择?
奖励问题:如何将变量的内容放入不使用括号的调用中?具体来说,使用带有动态 -o filename 选项的 mcc 的构建脚本;用括号调用 mcc 也是可以接受的,但我不知道如何 google ,因此这个问题。
谢谢!
当你调用一个没有括号的函数时,它被称为命令语法。以下是相关文档的三个 link:
加分回答
使用命令语法时不能使用变量。来自文档:
When calling a function using command syntax, MATLAB passes the arguments as character vectors.
所以它会像这样工作:
abc = zeros(10); % Some matrix called abc
mystring = 'abc' % A string containing the variable name
% Option 1:
clear('abc') % Clears the variable abc
% Option 2:
clear abc % As per above docs quote, interpreted as clear('abc')
% Option 3:
clear mystring % As per option 2, interpreted as clear('mystring') so doesn't work
% Option 4:
clear(mystring) % Interpreted as clear('abc') so works as expected
当您按照问题中的建议调用 mcc
时,工具提示显示您实际上可以使用函数语法,尽管 documentation 完全使用命令语法显示。
备注
使用括号是 MATLAB 中的标准做法,因为在使用命令语法时也无法从函数获取输出值。
同样在上面的第 3 个文档 link 中,您可以看到一条消息,劝阻在使用 MATLAB 时使用命令语法。
Caution: While the unquoted command syntax is convenient, in some cases it can be used incorrectly without causing MATLAB to generate an error.
对于 Matlab 脚本调用函数但提供不带括号的参数的情况,正确的名称是什么?
示例:
clear xx
或者,我可以使用括号并使用变量名称传输字符串:
clear('xx')
在谷歌搜索解决方案时如何区分这两种选择?
奖励问题:如何将变量的内容放入不使用括号的调用中?具体来说,使用带有动态 -o filename 选项的 mcc 的构建脚本;用括号调用 mcc 也是可以接受的,但我不知道如何 google ,因此这个问题。
谢谢!
当你调用一个没有括号的函数时,它被称为命令语法。以下是相关文档的三个 link:
加分回答
使用命令语法时不能使用变量。来自文档:
When calling a function using command syntax, MATLAB passes the arguments as character vectors.
所以它会像这样工作:
abc = zeros(10); % Some matrix called abc
mystring = 'abc' % A string containing the variable name
% Option 1:
clear('abc') % Clears the variable abc
% Option 2:
clear abc % As per above docs quote, interpreted as clear('abc')
% Option 3:
clear mystring % As per option 2, interpreted as clear('mystring') so doesn't work
% Option 4:
clear(mystring) % Interpreted as clear('abc') so works as expected
当您按照问题中的建议调用 mcc
时,工具提示显示您实际上可以使用函数语法,尽管 documentation 完全使用命令语法显示。
备注
使用括号是 MATLAB 中的标准做法,因为在使用命令语法时也无法从函数获取输出值。
同样在上面的第 3 个文档 link 中,您可以看到一条消息,劝阻在使用 MATLAB 时使用命令语法。
Caution: While the unquoted command syntax is convenient, in some cases it can be used incorrectly without causing MATLAB to generate an error.