主要内容

脚本和函数

演讲

MATLAB®Offre UN language de programprograment ainsi qu 'UN environment information interactif。Vous pouvez saisir les commands du language une par enligne de command MATLAB, ou Vous pouvez écrire une série de commands vers unfichier que Vous exécutez ensuite comme Vous le feriez pour n ' import函数MATLAB。Utilisez l ' éditeur MATLAB ou tout autre éditeur de texte pour créer vos propres fichiers de function。函数的上诉和导入函数的命令MATLAB。

我们有两种类型的方案:

  • Les scripts, qui n ' acceptpas d'arguments en entrée et ne retournent pas d'arguments en sortie。Ils opèrent sur les données dans l ' space de travail。

  • Les functions, qui peuvent accepter des arguments en entrée et retourner des arguments en sortie。Les variables internnes sont locales à la function。

Si vous êtes un nouveau programmeur MATLAB, il vous suffit de créer les fichiers de programme que vous souhaitez essayer dans le档案courant。À测量方法développez vos propres fichiers, vous aurez besoin de les组织者dans d ' aures fichiers ou工具箱人员que vous pourrez ajouter à votre chemin de recherche(搜索路径)MATLAB。

Si vous donnez deux fois le même nom à des functions, MATLAB exécutera la function placée en premier sur le chemin de recherche。

倒节目内容可视化器,举例myfunction.m,用

myfunction类型

脚本

你在召唤我脚本, MATLAB exécute tout simplement les commands qui se trouvent dans le fichier。Les scripts peuvent utiliser des données existantes de l 'espace de劳苦空间ou peuvent créer de nouvelles données sur lesquelles opérer。Même可重复的脚本,可重复的参数,可变的变量créent工作空间être utilisées计算ultérieurs。在外面,我们的脚本,我们的任务,我们的功能,我们的任务情节

例如:créez un fichier appelémagicrank.mqui continent les命令MATLAB suivantes:

研究魔方的秩r = 0 (1,32);对于n = 3:32 r(n) = rank(magic(n));结束酒吧(右)

锥形l 'instruction

magicrank

permet à MATLAB d 'exécuter les commands, de calculator l ' orre des 30 premiers carrés magiques et de tracer un graphique à barres du résultat。Après l 'exécution du fichier, les变量nr愤怒是痛苦的空间。

函数

这些函数是可接受的参数entrée和可重复的参数。这些名字和功能être同一性。函数opèrent关于工作空间的变量,求解不同的工作空间accédez关于工作空间的命令MATLAB。

排名En est UN bon的例子。文件rank.mEst disponible dans le卷宗

工具箱/ matlab / matfun

Vous pouvez voir le fichier avec

类型等级

Voici le fichier:

function r = rank(A,tol) % rank矩阵的秩。% RANK(A)提供了矩阵A中线性%无关的行或列的估计数目。% RANK(A,tol)是A %中大于tol的奇异值的数目。% RANK(A)使用默认tol = max(size(A)) * norm(A) * eps。s = svd(A);if nargin==1 tol = max(size(A)') * max(s) * eps;结束r = sum(s > tol);

La première ligne d 'une function begin par mot-clé函数.Elle donne le nom de la function et l ' orderre des argument。Dans ce cas, il y a jusqu'à deux arguments en entrée et un argument en sortie。

Les lignes suivantes, jusqu ' à la première ligne vierge ou exécutable, sont des lignes de commentaires qui fournissent le texte d'aide。这是对我的惩罚

帮助排名

La première ligne du texte d 'aide est La ligne H1, que MATLAB afficque lorsque vous utilisez La命令lookforOu bien la command帮助Sur UN档案。

算法重构函数代码MATLAB exécutable qui définit la函数。变量年代介绍在la函数中变量的变化première ligne,r,一个托尔, sont toutes地区Pour la function;elles sont séparées de toute变量de l ' space de travail MATLAB。

例子说明了非方面函数MATLAB que l 'on ne retrouve pas habituellement dans d ' aures language de programming:非名词变量参数。La函数排名Peut être utilisée de différentes manières:

rank(A) r = rank(A) r = rank(A,1.e-6)

De nombreuses functions se comportent De cette manière。Si aucun argument de sortie n 'est fourni, le résultat est stocké dans.Si le deuxième argument d 'entrée n 'est pas fourni, la function calcule une valeur par défaut。Dans le corps de la function, deux quantités intitulées输入参数个数nargoutSont disponibles pour vous indiquer le nombre d 'arguments en entrée et en sortie pour chque utilisation spécifique de la function。La函数排名利用输入参数个数,我不知道怎么用nargout

函数类型

MATLAB提供的各种类型函数的实用程序。

函数假名

一个函数anonymeest une forme simplifiée d'une函数MATLAB qui est définie à l'intérieur d'une seule指令MATLAB。Elle一致性表达式MATLAB et unnombre quelconque d 'arguments en entrée et en sortie。Vous pouvez définir une function匿名定向en ligne de command MATLAB ou à l 'intérieur d 'une function ou d 'un script。Ceci vous re re un moyen rapide créer de simples functions sans avoir à créer un fichier pour chacune d 'entre elles。

La syntaxe permettant de créer une function匿名à partr d 'une expression est

F = @(arglist)表达式

L 'instruction ci-dessous permet de créer une function匿名查询le carré d ' unnombre。Lorsque vous apelez cette函数,MATLAB属性la valeur que vous passez à变量x, puis utilisex在等式中x ^ 2。

SQR = @(x) x.^2;

倒exécuter拉函数sqr, tapez

A = sqr(5) A = 25

原则的功能和地区的功能

Toute function qui n 'est pas匿名doit être définie au sein d 'un fichier。欧洲大陆的功能函数的眼光总理的义务和联合国征服的荣誉函数的地方这就是它的作用。Les functions principales ont une portée加上大型que Les functions locale。Il est donc possible de les appeler depuis l 'extérieur du fichier qui les définit(样例à partir de la ligne de command MATLAB ou à partir de functions figurant dans d ' aures fichiers) à la différence des functions locales。那些不可见的地方的功能,关于原则上的功能和地方的功能même fichier。

La函数排名Indiquée丹拉节sur函数Est联合国功能原则范例。

函数privee

一个函数priveeEst UN型功能原则。Sa caractéristique unique est qu 'elle ne peut être vue que par un groupe limité d 'autres函数。Ce型功能peut être实用功能souhaitez限制器l 'accès à une功能ou si vous choisissez de ne pas曝光器l 'implémentation d 'une功能。

Les functions privées résident dans des sous-dossiers important l 'intitulé spécial私人.Elles ne peuvent être vues que par les functions situées dans le档案父母。例如,假设que le dossiernewmathsoit situé sur le chemin de recherche(搜索路径)MATLAB。Un sous-dossier denewmath称为私人与之相辅相成的功能与之相辅相成的功能newmathpeuvent appel。

Puisque les functions privées sont invisible en dehors du file ssier parent, elles peuvent utiliser les mêmes names que des function dans d ' aures files。Cela est实用si vous souhaitez créer votre propre version d 'une function particulière tout en gardant l 'originale dans un autre档案。Puisque MATLAB recherche les functions privées avant les functions standard, il trouvera une function privée intituléetest.m前卫的trouver UN fichier non privé intitulétest.m

函数imbriquees

Vous pouvez définir des functions dans le corps d 'une autre function。关于dit qu 'elles sontimbriquees外部函数。Une function imbriquée continental ou tous les composants de toute autre function。丹斯cet例子,la functionBEst imbriquée dans la function一个

函数x = A(p1, p2)…B(p2)函数y = B(p3)…结束……结束

Comme les autres functions, une function imbriquée possède son propre espace de travail dans level les variables utilisées par la function sont stockées。Mais elle a également accès关于工作空间和功能的讨论imbriquée。Donc, par example, une variable à laquelle la function principle a attribué une value peut être lue ou remplacée par une function imbriquée à n 'importe quel niveau dans la function principle a。De même, une variable qui est attribuée dans une function imbriquée peut être lue ou remplacée par toute function content cette function。

全局变量

Si vous souhaitez que plusieurs functions partagent une copy unique d 'une variable, il vous suffit de déclarer la variable come全球丹斯吹捧les功能。Faites la même选择en ligne de command si vous souhaitez que l ' space de travail de base accède à la variable。La déclaration global doit avoir lieu avant l ' utilization de La variable dans une function。Même是强制性的,全球变量名称的使用à变量的区分。例如,créez une nouvelle函数dans un fichier dénomméfalling.m

函数h =下降(t)全球重力h = 1/2*重力*t.^2;

Puis, de manière互动,saisissez les指令

全球重力重力= 32;Y =下降((0:.1:5)');

Les deux instructions globales metttent à disposition la valeur attribuée à重力à l 'invite de command à l 'intérieur de la function。Ensuite, vous pouvez修饰符重力De manière交互式新解决方案无éditer aucun fichier。金宝搏官方网站

Choisir entre command et function

Vous pouvez écrire des函数MATLAB qui accept des arguments de type caractère sans utiliser de parenthèses et de guillemets。Ainsi, MATLAB interprète

Foo a b c

就像

foo (a, b, c)

有资格的,你可以使用无警察命令的形式,用MATLAB计算出动任务。比如,

传说苹果橘子

Crée une légende sur UN tracé en utilant苹果橙子En tant qu ' étiquettes。Si vous souhaitez que la command传说重新提出出击的论据,你必须利用它来进行进攻:

[legh,objh] = legend('apple ','oranges');

加上,你用的是,你用的是,你用的是,你用的是,你用的是,你用的是,你用的是,你用的是,你用的是。

注意

Même无规则使用指令,无规则使用指令,无规则使用指令,être utilisée de manière不正确无规则MATLAB ne génère d' error。

构造参数类型caractère dans le code

La形式,函数,函数,函数,函数,函数,参数,类型caractère代码。L ' exemplant traite de multiples fichiers de données,August1.dat,August2.dat等。我在功能上休息int2str, qui convertit UN nombre entier en caractère pour conconire le nom du fichier:

s = ['August' int2str(d)]“.dat”);load(s) %处理第d个文件末尾内容的代码