主要内容

控制结构

控制条件:如果,否则,切换

有关条件许可选择时间的指示ejecución qué阻止código退出。La instrucción条件más simple es una instrucción如果.比如:

%生成随机数a = randi(100,1);%如果是偶数,则除以2如果rem(a, 2) == 0 disp('a是偶数')b = a/2;结束

拉斯维加斯instrucciones如果普登,包括调酒,中间调酒,中间调酒,并列调酒elseifo其他的.比如:

A = randi(100,1);如果disp < 30 ('small'),则elseif disp < 80 ('medium'),否则disp('large')结束

另一种方式,用una instrucción开关.比如:

[dayNum, dayString] = weekday(date, 'long', 'en_US');switch dayString case 'Monday' disp('工作周的开始')case 'Tuesday' disp('Day 2') case 'Wednesday' disp('Day 3') case 'Thursday' disp('Day 4') case 'Friday' disp('工作周的最后一天')否则disp('Weekend!')结束

那么多帕拉如果科莫帕拉开关, MATLAB®Ejecuta el código que对应la primera condición verdadera y luego销售del bloque de código。卡达instrucción有条件的安魂曲拉帕拉布拉克拉夫结束

总的来说,这是一种很有价值的方法开关儿子más fáciles de leer que las instrucciones如果.罪恶禁运,没有可能的公共汽车开关y情况下.我爱你,我爱你condición没有什么可以实现的开关

yourNumber = input('输入一个数字');if yourNumber < 0 disp('Negative') elseif yourNumber > 0 disp('Positive') else disp('Zero')结束

比较与指导条件

他是重要的监护人cómo我们的工作人员和指导人员如果矩阵运算。Cuando desee comprobar la igualdad entre dos变量,podría usar la siguiente condición:

如果A == B,……

Esto es código válido de MATLAB, y actúa según lo esperado cuando一个yB儿子escalares。佩罗cuando一个yB子矩阵,A == b没有功能如果山羊之子,sino在哪里儿子达到。结果,另一个矩阵,ceros,和,muestra, la, igualdad,元素,元素。

A =魔术(4);B = a;B(1,1) = 0;A == B ans = 4×4逻辑阵列0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

计算公式,计算公式,计算变量,计算变量funciónisequal

如果isequal(A, B),…

isequal发扬联合国的勇气escalar逻辑德1(que representa la variable真正的阿)0), en lugar de una matriz, como la expresión a evaluar por la función如果.Si se利用las矩阵一个yB前言,se obtiene:

isequal(A,B) ans =逻辑0

El siguiente ejemplo ayuda enfatizar este punto。如果一个yBSon escalares, el siguiente programa nunca alcanzará la "situación inesperada" del final。罪恶禁运,para la mayoría de los parares de矩阵,incluendo nuestros cuadrados mágicos con columnas intercambiadas, ninguna de las condicionesA > bA < boA == b结果válida第2段待办事项Los elements de las matrices。祝你好运cláusula其他的

if A > B 'greater' elseif A < B 'less' elseif A == B 'equal' else错误('意外情况')结束

各种不同的方法,不同的方法,不同的转换,不同的矩阵,不同的条件,不同的效用如果,包括:抽烟

Isequal isempty all any

控制节拍:为,while, continue, break

Esta sección MATLAB比例函数控制清醒程序。

El bucle背诵UN grupo de instrucciones una cantidad de vees fija y predeterminada。Una脂肪酸的结束通讯员说明:

对于n = 3:32 r(n) = rank(magic(n));结束r

El punto y coma que finaliza la instrucción inter至高la impresión重复,y lar消失después最后的结局。

值得推荐的桑格拉斯布勒斯,对我来说是可读的,特别是宽están anidados:

H(i,j) = 1/(i+j);结束结束

El bucle背诵联合国指导小组,不确定的悬臂,对环境的控制condición lógica。Una脂肪酸的结束通讯员分隔指示。

我有一个完整的计划,我有一个完整的计划如果其他的y结束, y utilitza la bisección de intervalos para buscar UN cero de UN polinomio:

A = 0;fa = -Inf;B = 3;fb = Inf;而b-a > eps*b x = (a+b)/2;Fx = x^3-2*x-5;如果sign(fx) == sign(fa) a = x;Fa = fx;Else b = x;Fb = fx; end end x

结果raíz我的梦想x3.- 2x- 5、es decir:

X = 2.09455148154233

Las cauciones asociadas Las comparative aciones de matrix que se analizan en la sección de la instrucción如果También se aplican a la instrucción

继续

La instruccion继续Traslada el control a la siguiente iteración del bucleO del bucle在外面,在外面的地方instrucción在外面的地方。Lo mismo curre para las instrucciones继续Dentro de bucles anidados。看得很清楚,la ejecución continúa我们的蓝色之家encontró la instrucción继续

我的名字,我的名字,我的名字继续Que cuenta las líneas de código del archiivomagic.mY omite todos los comentarios Y líneas en blanco。La instruccion继续这是一段宝贵的资源línea demagic.m,罪恶的增量,在一个地方,在一个地方,在一个地方línea白色。

Fid = fopen('magic.m','r');计数= 0;当~feof(fid) line = fgetl(fid);If isempty(line) || strncmp(line,'%',1) || ~ischar(line) continue end count = count + 1;结束fprintf('%d lines\n',count);文件关闭(fid);

打破

La instruccion打破permite salir preonto de UN bucle哦,联合国bucle.En bucles anidados,打破销售独奏德尔布鲁斯más interno。

另一个地方,一个地方sección前面。¿Por qué es推荐este uso de打破?

A = 0;fa = -Inf;B = 3;fb = Inf;而b-a > eps*b x = (a+b)/2;Fx = x^3-2*x-5;If fx == 0 break elseif sign(fx) == sign(fa) a = x;Fa = fx;Else b = x;Fb = fx; end end x

Finalización del programa:返回

Esta sección trata la función返回MATLAB,白土终端机,程序和方法的完整计算。

返回

脂肪酸的返回最后一件事,安全的实际行动和控制función召唤和控制。返回También se utilza para terminar el modo键盘(teclado)。Normalmente, una función llamada transfiere el control a la función que la invocó cuando llega al final de la función。Es可能插入una instrucción返回Dentro de la función美洲驼para forzar una finalización temprana y transferir el control a la función invocadora。

Vectorizacion

公式公式公式程序的MATLAB函数más rápidamente e矢量算法的usados para la construcción公式程序。Donde otros lenguajes de programación usarían bucleso bucles, MATLAB puede utility operaciones convecatoro矩阵。Un ejemplo simple incluye la creación una tabla de logaritmos:

X = 0.01;Y = log10(x);对于k = 1:9 999 x(k+1) = x(k) + 0.01;Y (k+1) = log10(x(k+1));结束

Una versión vectorizada del mismo código es

X = .01:.01:10;Y = log10(x);

Para códigos más complicados, las opciones de vectorización没有siempre son tan obvias。

Preasignacion

Si no puede vectorizar una sección de código, puede hacer que sus bucles功能más rápido中间拉preasignación关于薪金变化的矢量和连续的结果。Por ejemplo, este código utilza la función0creado enel bucle前信号矢量.同心协力,同心协力Se ejecuta significant vamente más rápido:

R = 0 (32,1);对于n = 1:32 r(n) = rank(magic(n));结束

Sin la preasignación del ejemplo前,el intérprete de MATLAB amplía el向量r, añadiéndole弹射的基本要素código蓝蓝的preasignación消除过程和结果的矢量ejecución más rápida。

Baidu
map