罗兰谈MATLAB的艺术

将想法转化为MATLAB

MATLAB中的命令和函数语法

有一个相当恒定的问题流在许多MATLAB的场所,包括MATLAB新闻组归结起来就是不理解MATLAB中命令和函数语法之间的区别。今天我试着澄清事实。

内容

典型的问题

为什么MATLAB给出了错误的答案?

A = 1:4;disp一个
一个

为什么我看不到值1,…,4在变量中找到一个?

MATLAB的文档

在回答用户的问题和讨论细节之前,我必须承认,我认为MATLAB调用语法的文档对这个主题非常清楚。尽管如此,我将在这里给出自己的看法。

MATLAB函数语法

我们调用MATLAB函数时,将输入参数列在括号内,并用逗号分隔。例如,

罪(π* (0:5)/ 5)

给出了一个粗略采样的半正弦波。要将其放入变量中,请使用变量名(或现有变量的索引)后跟等号(),然后计算表达式。

Hs = sin(pi*(0:5)/5)
Hs = 0 0.5878 0.9511 0.9511 0.5878 0.0000

对于多个输出变量,使用逗号分隔的变量,输出参数用方括号括起来:

[a,b,c] = deal(17)
A = 17 b = 17 c = 17

我们可以使用变量和变量表达式来代替显式输入。

Tpoints = (0:25)/5;半正弦= sin(pi*tpoints(1:6))
halfsin = 0 0.5878 0.9511 0.9511 0.5878 0.0000

如果我们想用单精度计算而不是用双精度,我们可以这样做:

TPS =单个(tpoints);半正弦= sin(pi*tps(1:6))
半正弦= 0 0.5878 0.9511 0.9511 0.5878 -0.0000

如果我们有一个接受字符串输入的函数,比如dir,我们可以显式地传入字符串:

dir (“D: \罗兰\训练营”
,. .fromDoug fromStuart

或者我们可以传入一个字符串变量。

目录名=“D: \罗兰\训练营”dir(目录名)
dirname = D:\Loren\BootCamp ..fromDoug fromStuart

MATLAB命令格式

命令语法不使用圆括号,通常不将输出放在变量中,不能返回多个变量,并且使用句柄只有文字字符串输入。例如,

disp(目录名)
D: \罗兰\训练营

显示变量的字符串值目录名,而

disp目录名
目录名

显示字符串文字目录名

同样,我们可以看到下面两句话的区别:

disp一个disp (A)
A 1 2 3 4

第一个语句在哪里显示文字字符串一个而第二个语句显示的值一个包含。

使用命令和函数语法的等效MATLAB语句

下面是一些等价的MATLAB语句,用于组合字符串和数字来创建要传递给的文件名负载

加载(“file4”)

负载file4

Fn = 'file4';加载(fn)

Fn = '文件';Nfiles = 4;负载([fn int2str (nfile)])

如何帮助用户不被命令和函数语法绊倒

你对如何防止用户在MATLAB中被命令和函数语法绊倒有什么想法吗?如果有,请告诉我。


使用MATLAB®7.2发布

|

评论

如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。