matlba中小括号的作用 matlab中那些函数的参数为啥有的要用小括号,有的不用呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlba中小括号的作用 matlab中那些函数的参数为啥有的要用小括号,有的不用呢?相关的知识,希望对你有一定的参考价值。

如,
c = sym(3)
eval c %将符号转换成对应数值。这里就是eval c 或者eval (c) 都可以
>> c =
3

sym a b
y = a^3 - b^3
factor (y) %把y因式分解,但是不能是factor y,一定要有小括号。

有小括号的时候,括号里面的内容可以是具体的值,也可以是赋值以后的变量名。括号外的一定是具体的值。下面是一个例子,假设你有手头有一个mat文件,名字叫 test.mat,现在想把它调进来,可以这么干:
load test.mat
也可以这么干:
filename='test.mat';
load(filename);
第二种方法明显有优势,因为小括号里面的内容是一个变量名
参考技术A 不确定的话就查一下函数的用法,help+函数名,多学习就行了

Matlab调用不带括号的函数

【中文标题】Matlab调用不带括号的函数【英文标题】:Matlab Calling Functions without parentheses 【发布时间】:2017-12-27 07:23:29 【问题描述】:

Matlab 脚本调用函数但提供不带括号的参数的情况的正确名称是什么?

例子:

clear xx

或者,我可以使用括号并使用变量名传输字符串:

clear('xx')

在搜索解决方案时如何区分这两种选择?

额外问题:如何将变量的内容放入不使用括号的调用中?具体来说,使用带有动态 -o filename 选项的 mcc 的构建脚本;用括号调用 mcc 也是可以接受的,但我不知道如何用谷歌搜索,因此提出了这个问题。

谢谢!

【问题讨论】:

mathworks.com/matlabcentral/answers/… 您好,感谢您的链接。这涉及从 shell 调用已编译的可执行文件。我在问 matlab 脚本之间的区别,所以 *.m-files. 【参考方案1】:

当你调用一个没有括号的函数时,它被称为命令语法。以下是相关文档的三个链接:

syntax command vs function syntax scripts and functions

奖励答案

在使用命令语法时不能使用变量。来自文档:

使用命令语法调用函数时,MATLAB 将参数作为字符向量传递。

所以它会像这样工作:

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 个文档链接,您可以看到一条消息,在使用 MATLAB 时不鼓励使用命令语法。

警告:虽然不带引号的命令语法很方便,但在某些情况下,它可以不正确地使用而不会导致 MATLAB 产生错误。

【讨论】:

谢谢,很好的解释和链接!我想我可以这样调用 mcc: mcc('-m', 'script.m', '-d', pathVariable);它工作正常,即使这似乎没有记录。 我刚刚看到您对 mcc 的编辑,也谢谢您! 别担心,文档只使用命令语法很奇怪,我认为这是因为使用编译器的人被认为更熟悉这种风格。我不知道(并且假设没有)任何使用命令语法专门调用的函数。

以上是关于matlba中小括号的作用 matlab中那些函数的参数为啥有的要用小括号,有的不用呢?的主要内容,如果未能解决你的问题,请参考以下文章

Javascript大括号和中括号的区别

matlab的plot命令

Java中大括号的作用是啥?

matlab中小数如何取整?

matlab中小波分析工具箱中wrcoef和waverec的区别是啥?

matlab中小数如何取整?