matlab学习笔记及简单练习

本文介绍了MATLAB的基本语法,包括变量、运算符、矩阵和向量的操作,以及数据类型。讲解了如何进行算术运算、逻辑判断、流程控制,并举例说明了MATLAB中创建和运行脚本文件的过程。此外,还探讨了MATLAB的输入输出、绘图命令和数据管理。内容涵盖从简单的变量赋值到复杂的矩阵运算,以及MATLAB在编程和计算中的实用功能。
摘要由CSDN通过智能技术生成

MATLAB基本语法

MATLAB 提供了一些特殊的一些数学符号的表达,像圆周率 π, Inf = ∞, i (and j) = √-1 etc. Nan 代表“不是一个数字”。

实践:

%1、键入79855*98975,请问输出中的e代表上面
%2、键入7/0后,输出的结果是什么。
%3、abs(9+4i)是什么意思,结果是多少?

MATLAB常用的运算符和特殊字符如下所示:

A = [1 4 5 3;2 4 1 2];
如上所示便是建立矩阵,其中分号代表另外一行。
%建四个4*4矩阵A,B,C,D。
	+		加;加法运算符
%实验:计算A+B,C+D
	-	    减;减法运算符
%实验:计算A-B,C-D
	*		标量和矩阵乘法运算符
%实验:计算2*A,3*B,C*D
	.*	    数组乘法运算符
%实验:计算2.*A,3.*B,C.*D并与上式比较
	^		标量和矩阵求幂运算符
%实验:计算2^A,B^2,C^D
	.^		数组求幂运算符
%实验:计算2.^A,B.^2,C.^D
	\		矩阵左除
%实验:计算2\A,B\3,C\D;
	/		矩阵右除
%实验:计算2/A,B/3,C/D;
	.\		阵列左除
%实验:计算2.\A,B.\3,C.\D;
	./		阵列右除
%实验:计算2./A,B./3,C./D;
	:		向量生成;子阵提取
%实验:尝试E=[2:12],F=[3:2:99]
	( )	 	下标运算;参数定义 
%实验:尝试A(1),B(4),C(2,3),D([1,9])
	后面的作了解即可。
	_		引用符号和转置运算符
	._		非共轭转置运算符
	=		赋值运算符
	%		注释用的,代码不执行

MATLAB变量

每个MATLAB变量可以是数组或者矩阵。
在使用变量之前,必须进行赋值。
当系统接收到一个变量之后,这个变量可以被引用。
%实验:设置两个变量x和y,给x赋值7,y赋值9,计算x*y,x/y,x^y的值
MATLAB如何显示已经使用的变量名?

在MATLAB中可以使用 who(whos) 命令显示所有已经使用的变量名。(自己尝试一下两者的区别)

长任务可以通过使用省略号(…)延伸到另一条线路。例如,

A=[9 8 4 7 5 4 5;1 2 3 5 6 9 1;...
	4 8 5 9 5 1 7];

MATLAB格式命令

默认情况下,MATLAB 四个小数位值显示数字。这就是所谓的 short format.

如果想更精确,需要使用 format 命令。

长(long ) 命令格式显示小数点后16位。

%实验,键入下文
format long			%控制格式
x = 7 + 10/3 + 5 ^ 1.2
%将long分别改为short、bank、short e、rat和long e试一试

向量是一维数组中的数字。 MATLAB允许创建两种类型的矢量:

  • 行向量
  • 列向量

创建行向量括在方括号中的元素的集合,用空格或逗号分隔的元素。

%键入r = [7 8 9 10 11]和c = [7;  8;  9;  10; 11]的区别

MATLAB创建矩阵

矩阵是一个二维数字阵列。

在MATLAB中,创建一个矩阵每行输入空格或逗号分隔的元素序列,最后一排被划定一个分号。

例如,下面创建了一个3×3的矩阵:

m = [1 2 3; 4 5 6; 7 8 9]
%请尝试一下eye(n),ones(n,m),zeros(n,m),ones(n),zeros(n),n,m可以去任何正整数。

MATLAB管理会话的命令

MATLAB提供管理会话的各种命令。如下表所示:(先要学会clc,clear,help)

clc %清楚命令窗口
clear %删除变量
help 关键词 %查询某个函数或关键词的用法或意义,例如help ones
命令目的/作用
clc清除命令窗口。
clear从内存中删除变量。
exist检查存在的文件或变量。
global声明变量为全局。
help搜索帮助主题。
lookfor搜索帮助关键字条目。
quit停止MATLAB。
who列出当前变量。
whos列出当前变量(长显示)。

MATLAB的系统命令

使用MATLAB的时候有一些系统命令可以方便我们的操作,如在当前的工作区中可以使用系统命令保存为一个文件、加载文件、显示日期、列出目录中的文件和显示当前目录等。

下表列举了一些MATLAB常用的系统相关的命令:(均可后期在掌握,先了解即可)

命令目的/作用
cd改变当前目录。
date显示当前日期。
delete删除一个文件。
diary日记文件记录开/关切换。
dir列出当前目录中的所有文件。
load负载工作区从一个文件中的变量。
path显示搜索路径。
pwd显示当前目录。
save保存在一个文件中的工作区变量。
type显示一个文件的内容。
what列出所有MATLAB文件在当前目录中。
wklread读取.wk1电子表格文件。

MATLAB输入和输出命令

MATLAB提供了以下输入和输出相关的命令:

尝试在以下代码disp("小奇最帅哈哈哈")
k=input("你认为小奇帅么?1、帅,2、很帅,3、非常非常帅,其他、帅出天际");
fscanf和fprintf等了解c之后在去了解
命令作用/目的
disp显示一个数组或字符串的内容。
fscanf阅读从文件格式的数据。
format控制屏幕显示的格式。
fprintf执行格式化写入到屏幕或文件。
input显示提示并等待输入。
;禁止显示网版印刷

fscanf和fprintf命令的行为像C scanf和printf函数。他们支持格式如下代码:

格式代码目的/作用
%s输出字符串
%d输出整数
%f输出浮点数
%e显示科学计数法形式
%g%f 和%e 的结合,根据数据选择适当的显示方式

用于数字显示格式的函数有以下几种形式:

Format函数最多可显示
format short四位十进制数(默认)
format long15位定点表示
format short e五位浮点表示
format long e15位浮点表示
format bank两个十进制数字
format +正,负或零
format rat有理数近似
format compact变量之间没有空行
format loose变量之间有空行

MATLAB向量,矩阵和阵列命令

下表列出了MATLAB用于工作数组、矩阵和向量的各种命令:

尝试以下代码:
A = ones(5);
max(A)
min(A)
sum(A)
%猜猜为什么会这样显示
%至于矩阵的秩呀,逆呀什么的,看你们自己的学习情况了呗
命令作用/目的
cat连接数组
find查找非零元素的索引
length计算元素数量
linspace创建间隔向量
logspace创建对数间隔向量
max返回最大元素
min返回最小元素
prod计算数组元素的连乘积
reshape重新调整矩阵的行数、列数、维数
size计算数组大小
sort排序每个列
sum每列相加
eye创建一个单位矩阵
ones生成全1矩阵
zeros生成零矩阵
cross计算矩阵交叉乘积
dot计算矩阵点积
det计算数组的行列式
inv计算矩阵的逆
pinv计算矩阵的伪逆
rank计算矩阵的秩
rref将矩阵化成行最简形
cell创建单元数组
celldisp显示单元数组
cellplot显示单元数组的图形表示
num2cell将数值阵列转化为异质阵列
deal匹配输入和输出列表
iscell判断是否为元胞类型

MATLAB绘图命令

MATLAB提供了大量的命令绘制图表。下表列出了一些常用的命令绘制:

实验:假设小奇跑步速度为5m/s,请求出他1s,2s,3s...15s内跑过的路程,
并且组成一个数组s,然后用plot画出路程与时间的函数图像(提示,时间数据为1:15),
同时在图像的顶头用给函数图像起名为小胖胖的减肥历程,x轴标上时间,y轴标上路程。
实验2:小胖胖回想过去二十多年时光,感觉自己的身高和体重在随着年龄增长而线性增长,
直到20才停止,以年龄为自变量[1:20],体重w为因变量,身高h为因变量,计算出w和h数组,
并用plot3画出三维函数图像。(不会plot3先help plot3一下,瞿胖胖1岁身高体重为40cm,12kg,20岁时为2m,85kg);
其他的诸如fplot,subplot,hold,axis可以详细了解一下
命令作用/目的
axis人工选择坐标轴尺寸
fplot智能绘图功能
grid显示网格线
plot生成XY图
print打印或绘图到文件
title把文字置于顶部
xlabel将文本标签添加到x轴
ylabel将文本标签添加到y轴
axes创建轴对象
close关闭当前的绘图
close all关闭所有绘图
figure打开一个新的图形窗口
gtext通过鼠标在指定位置放注文
hold保持当前图形
legend鼠标放置图例
refresh重新绘制当前图形窗口
set指定对象的属性,如轴
subplot在子窗口中创建图
text在图上做标记
bar创建条形图
loglog创建双对数图
polar创建极坐标图像
semilogx创建半对数图(对数横坐标)
semilogy创建半对数图(对数纵坐标)
stairs创建阶梯图
stem创建针状图

MATLAB M-Files:

matlab是一个功能强大的编程语言及交互式计算环境,所以matlab依旧允许写入到一个文件里的一系列命令和执行文件的完整单元,就好比写一个函数,然后调用它。

首先,我们先了解一下matlab中的m文件有两种类型:

MATLAB的M文件:
  • 脚本 - 脚本文件.m 扩展程序文件。在这些文件中写的一系列命令,想一起执行。脚本不接受输入和不返回任何输出。他们在工作区中的数据操作。
  • 函数 - 函数文件 .m 扩展程序文件。函数可以接受输入和返回输出。内部变量是本地的函数。

.m 文件不一定要使用 MATLAB 编辑器创建,其他任何的文本编辑器也是可以的。在本节中,我们将讨论的脚本文件。MATLAB 命令和函数调用的脚本文件包含多个连续的行。可以运行一个脚本,在命令行中键入其名称。

img

如果使用的是IDE,选择 NEW(新建) -> Script(脚本)。这能打开编辑器,并创建一个文件名为命名。输入代码后可以命名并保存文件。(matlab可执行扩展文件一定是以.m结尾)

实验:在脚本中输入下面代码,让后点击运行NoOfStudents = 6000;
TeachingStaff = 150;
NonTeachingStaff = 20;
Total = NoOfStudents + TeachingStaff ... 
         + NonTeachingStaff;
disp(Total);
实验2:创建另外一个脚本,输入下面代码并且运行
a = 5; b = 7;c = a + bd = c + sin(b)e = 5 * df = exp(-d)

MATLAB数据类型

默认情况下,matlab数值变量为双精度浮点值。其他数据类型储存文本,整数或单精度值或单个变量中相关数据的组合。(先暂时直到前面即可,至于上面是浮点数自行百度一下)。

当然,在不默认也就是声明的情况下,matlab提供了15种数据类型,分别是8种整型数据、单精度浮点型、双精度浮点型、逻辑型、字符串型、单元数组、结构体类型和函数句柄。每种数据类型存储矩阵或数组形式的数据。矩阵或数组的最小值是00,并且是可以到任何大小的矩阵或数组。

先展示其中一小部分:

数据类型描述
int88位有符号整数
uint88位无符号整数
int1616位有符号整数
uint1616位无符号整数
int3232位有符号整数
uint3232位无符号整数
int6464位有符号整数
uint6464位无符号整数
single单精度数值数据
double双精度数值数据
logical逻辑值为10,分别代表truefalse
char字符数据(字符串作为字符向量存储)
实验:在脚本键入以下代码并执行(如果没有分号,那命令行窗口就会打印出结果)
str = 'Hello World!'
n = 2345
d = double(n)
un = uint32(789.50)
rn = 5678.92347
c = int32(rn)

注意,调用脚本有两种方式,第一种是直接脚本点运行,第二中是在命令行窗口键入脚本名字会自动运行脚本。

数据类型转换

matlab提供了许多数据类型转换的函数,以下举例一部分即可:

函数描述说明
char转换为字符数组(字符串)
int2str将整数数据转换为字符串
mat2str将矩阵转换为字符串
num2str将数字转换为字符串
str2double将字符串转换为双精度值
str2num将字符串转换为数字
查看以下变量的类型及输出结果(查看变量类型用class)
sl = "123hh";
s2 = 132;
s3 = [1 4 3;2 5 6];
s4 = "11.04pp";
s5 = str2num(s1);
s6 = str2double(s1);
s7 = str2num(s4);
s8 = str2double(s4);
s9 = int2str(s2);
s_1 = mat2str(s3);

当然,matlab其实还有很多数据类型确定的函数,你们可以下去查询,这里就不一一举例了。

MATLAB运算符

接下来是运算符,分别有:

  • 算术运算符

  • 逻辑运算符

  • 关系运算符

  • 位运算

  • 集合运算

算数运算符在之前已经讲过了,也就是加减乘除等运算符,所谓逻辑运算符就是and(&&),or(||),not(~).

尝试一下下面这段代码.

a = 5;b = 20;   
if ( a && b )        
     disp('Line 1 - Condition is true');   
end   
if ( a || b )       
      disp('Line 2 - Condition is true');   
end   
% lets change the value of  a and b    a = 0;   b = 10;   
if ( a && b )       
        disp('Line 3 - Condition is true');  
 else       
        disp('Line 3 - Condition is not true');   
 end  
 if (~(a && b))  
         disp('Line 4 - Condition is true');  
 end

至于关系运算符就是指

操作符描述
<小于
<=小于等于
>大于
>=大于等于
==等于
~=不等于

这就不举例了,当然MATLAB提供下列命令/函数用于同样的目的:

函数描述
eq(a, b)测试a是否等于b
ge(a, b)测试是否大于或等于B
gt(a, b)测试a是否大于b
le(a, b)测试a是否小于或等于b
lt(a, b)测试a是否小于b
ne(a, b)测试a是否不等于b
isequal测试数组以获得相等性
isequaln测试数组相等,将NaN值视为相等

接下来是位运算

所谓位运算是对数据的二进制进行操作,这个可以详细了解以下计算机的二进制编码.

pqp & qp | qp ^ q
00000
01011
11110
10011

假设如果A= 60,B =13,他们现在以二进制格式将如下:

A = 0011 1100

B = 0000 1101


A&B = 0000 1100

A|B = 0011 1101

A^B = 0011 0001

~A = 1100 0011

最后一个便是集合操作符了,

函数描述
intersect(A,B)设置两个数组的交集;返回A和B所共有的值。返回的值按排序顺序排列。
intersect(A,B,‘rows’)将A和B的每一行作为单个实体处理,并返回A和B的公共行。返回的矩阵的行按排序顺序排列。
ismember(A,B)返回与A大小相同的数组,包含1(true),其中A的元素在其他地方的B中找到,它返回0(false)。
ismember(A,B,‘rows’)将A和B的每一行作为单个实体处理,并返回一个包含1(true)的向量,其中矩阵A的行也是B的行;否则,它返回0(false)。
issorted(A)如果A的元素按排序顺序返回逻辑1(true),否则返回逻辑0(false)。输入A可以是向量,也可以是N-by-1或1-by-N的字符串数组。如果A和sort(A)的输出相等,则A被认为是排序的。
issorted(A, ‘rows’)如果二维矩阵A的行按排序顺序返回逻辑1(真),否则返回逻辑0(假)。 如果A和排序(A)的输出相等,则认为矩阵A被排序。
setdiff(A,B)设置两个数组的差值;返回不在B中的值。返回数组中的值按排序顺序排列。
setdiff(A,B,‘rows’)将每一行A和B行作为单个实体处理,并返回一个不在B中的行。返回的矩阵的行按排序顺序排列。“行”选项不支持单元格数组。
setxor设置两个数组的异或
union设置两个数组的并集
unique数组中唯一的值

在MATLAB中建立一个脚本文件,并键入下面的代码:

a = [7 23 14 15 9 12 8 24 35]
b = [ 2 5 7 8 14 16 25 35 27]
u = union(a, b)
i = intersect(a, b)
s = setdiff(a, b)

MATLAB算术运算

matlab算数运算包括算数运算符和算数运算函数,算数运算符我就不做赘述了,下面举例一些算数运算函数

函数描述
uplus(a)一元加号;增加量a
plus (a,b)相加;返回 a + b
uminus(a)一元减号;减少a
minus(a, b)相减;返回 a - b
times(a, b)数组相乘;返回 a.*b
mtimes(a, b)矩阵相乘;返回 a* b
rdivide(a, b)右阵划分;返回 a ./ b
ldivide(a, b)左阵划分;返回 a. b
mrdivide(A, B)求解线性方程组xA = B for x
mldivide(A, B)求解线性方程组xA = B for x
power(a, b)数组求幂;返回 a.^b
mpower(a, b)矩阵求幂;返回 a ^ b
cumprod(A)累积乘积;返回与包含累积乘积的数组A相同大小的数组。如果A是向量,则cumprod(A)返回一个包含A的元素的累积乘积的向量。如果A是矩阵,则cumprod(A)返回一个矩阵,其中包含A的每一列的累积乘积。如果A是一个多维数组,那么cumprod(A)将沿着第一个非正整数维。
cumprod(A, dim)沿维 dim 返回返回累积乘积。
cumsum(A)累加总和;返回包含累积和的数组A如果A是向量,则cumsum(A)返回一个包含A的元素的累积和的向量。如果A是矩阵,则cumsum(A)返回一个矩阵,其中包含A的每列的累积和。如果A是一个多维数组,那么cumsum(A)将沿着第一个非整数维度起作用。
cumsum(A, dim)返回沿着dim的元素的累积和。
diff(X)差分和近似导数;计算x相邻元素之间的差异。如果X是向量,则diff(X)返回相邻元素之间的差异的向量,比X短一个元素:[X(2)-X(1)X(3)-X(2)… X(N)-X(N-1)]如果X是一个矩阵,则diff(X)返回行差的矩阵:[X(2:m,…)-X(1:m-1,: )]
diff(X,n)递归应用n次,导致第n个差异。
diff(X,n,dim)它是沿标量dim指定的维数计算的第n个差分函数。 如果order n等于或超过Dim的长度,diff将返回一个空数组。
prod(A)数组元素的乘积;返回A数组元素的乘积。如果A是向量,则prod(A)返回元素的乘积。如果A是非空矩阵,则prod(A)将A的列作为向量,并返回每列乘积的行向量。如果A是一个空的0-by-0矩阵,则prod(A)返回1。如果A是一个多维数组,那么prod(A)将沿着第一个非子集维度行为并返回一个乘积数组。 该维数的尺寸减小到1,而所有其他维数的尺寸保持不变。如果输入A为单个,则prod函数计算并返回B为单个;对于所有其他数字和逻辑数据类型,prod函数计算并返回B为double。
prod(A,dim)沿dim维度返回乘积。 例如,如果A是矩阵,则prod(A,2)是包含每一行的乘积的列向量。
prod(___,datatype)在数据类型指定的类中乘以并返回一个数组。
sum(A)数组元素的总和;返回数组的不同维度的和。如果A是浮动的,那么是双倍或单个,B是本地累加的,它与A相同,B与A具有相同的类。如果A不是浮动的,则B被累加为双,B具有类double。如果A是向量,则sum(A)返回元素的总和。如果A是矩阵,则sum(A)将A的列作为向量,返回每列的和的行向量。如果A是一个多维数组,sum(A)将沿着第一个非单例维度的值作为向量来处理,返回一个行向量的数组。
sum(A,dim)沿标量A的维度求和。
sum(…, ‘double’)sum(…, dim,‘double’)执行双精度加法,并返回double类型的答案,即使A具有数据类型单一或整型数据类型。这是整型数据类型的默认值。
sum(…, ‘native’)sum(…, dim,‘native’)在本机数据类型A中执行添加,并返回相同数据类型的答案。 这是单和双的默认值。
ceil(A)向正无穷方向舍入;将a元素舍入为大于或等于A的最近整数。
fix(A)舍入为零
floor(A)向负无穷方向舍入;将a元素舍入为小于或等于a的最近整数。
idivide(a, b)idivide(a, b,‘fix’)整数除法的舍入选项;与A./B相同,只是分数的商向零舍入到最接近的整数。
idivide(a, b, ‘round’)分数的商舍入到最近的整数。
idivide(A, B, ‘floor’)分数商向负无穷大舍入到最接近的整数。
idivide(A, B, ‘ceil’)分数商向无穷大舍入到最接近的整数。
mod (X,Y)除法后的模数;返回X - n.* Y,其中 n = floor(X./Y)。 如果Y不是整数,并且商X / Y在整数的舍入误差内,则n是整数。 输入X和Y必须是相同大小的真实数组或实数标量(提供Y〜= 0)。请注意:mod(X,0) 是 Xmod(X,X) 是 0对于 X = Y 和 Y = 0的 mod(X,Y)具有与Y相同的符号。
rem (X,Y)除法之后的余数;返回X - n.* Y,其中n = fix(X./Y)。 如果Y不是整数,并且商X / Y在整数的舍入误差内,则n是整数。 输入X和Y必须是相同大小的真实数组或实数标量(提供Y〜= 0)。请记住:rem(X,0) 是 NaNX〜= 0的rem(X,X)为0对于 X~=Y 和 Y~=0 的rem(X,Y)与X具有相同的符号。
round(X)舍入到最接近的整数; 将X的元素舍入到最接近的整数。 正数元素的小数部分为0.5,最大到最接近的正整数。 负数元素的小数部分为-0.5,向下舍入到最接近的负整数。

其中最常用的是diff,sum,ceil,fix,floor,mod,round等函数.

MATLAB各种流程语句语法

1、分支流程if语句语法
if 条件	
     执行语句
end

判断a是否为0如果a=0则输出a。

if a==0			%思考一下==和===有什么区别	
     disp(a);
end
2、多分支流程if……elseif……else……end
if 条件1	
      执行语句1
elseif	条件2	
      执行语句2
else 	
      执行语句
3end

判断a和b的大小关系,输出大的那个,如果两数相等则输出“相等”。

if a>b	
	disp(a);
elseif	b>a	
	disp(b);
else 	
	disp("相等");
end
3、多分支流程2-switch语句
switch(被测数据)	
case 数据1    	
         执行语句1    
case 数据2 
   	    执行语句2
case 数据3    	
   	    执行语句3   
...    
otherwise    
   	    执行语句n
end

输入一个月份,判断该月是那个季节,123春依次类推

k = input("请输入月份")int(k/4);
switch(k)	
   case 1    	
         disp("春天");  
   case 2
         disp("夏天");    
    case 3   
     	 disp("秋天");  
    case 4
         disp("冬天");  
     otherwise  
       	disp("没有这个月份");
 end

MATLAB循环语句

MATLAB while循环语句
while 循环条件
	循环语句
end

实验,打印出1:20的和

int i = 1,n=0;
while i <=20
	n = n+i;
end
disp(n);

事实上,对于上面这个问题还有更为简便的方法

a = [1:20];
disp(sum(a));

循环语句最为主要的功能是多次执行同样或者同规律的代码。

MATLAB for循环语句
for 循环元素 = 循环元素可遍历向量或数组
  执行语句;
          ...
end

上面不太好理解,我们看一下下面的示例:

%输出1加到100的和
sum = 0;
for i=1:100
	sum = sum+i;
end
disp(sum);

事实上,上面等价于

sum = 0;
for i=1:1:100
	sum = sum+i;
end
disp(sum);

如果将问题改为输出1到100的奇数和:

sum = 0;
for i=1:2:100
	sum = sum+i;
end
disp(sum);

然而对于上面有两个需要特别注意的问题,sum在matlab中是一个求和函数,所以尽量不要用sum作变量名,同样的,i也是一个特殊的存在,它代表虚数单位,但上面中i的存在周期只有一个for循环,所以影响不大,但也需要特别注意。

MTATLAB循环嵌套和选择嵌套以及混合嵌套

在 MATLAB 中嵌套 for 循环语句的语法如下:

for m = 1:t
    for n = 1:k
        执行语句;
    end
end

例如:

%输出有序数对(i,j),其中i,j均大于0,i<10,j<7的所有可能组合
for m = 1:9
    for n = 1:6
        fprintf("(%d,%d)\n",m,n);
    end
end
%fprintf可以通过help了解用法,其中%d代表输出数据为int类型,其他是输出格式,\n代表转行,输出转行

在 MATLAB 中嵌套 while 循环语句的语法如下:

while 循环条件
   while 循环条件
       执行语句;
   end
end

实验一下:

%给定一个十进制正整数n,写下从1到n的所有整数,然后数一下其中出现的数字“1”的个数。
%例如当n=2时,写下1,2。这样只出现了1个“1”;当n=12时,写下1,2,3,4,5,6,7,8,9,10,11,12。这样出现了5个“1”。
%!!!这道题可能偏难,但希望能够努力完成。

在 MATLAB 中嵌套 if选择语句的语法如下:

if 判断条件
	if 判断条件
	执行语句
	else
	执行语句
	end
end

例如:

%公历纪年法中,能被4整除的大多是闰年,但能被100整除而不能被400整除的年份不是闰年,
%能被3200整除的也不是闰年,如1900年是平年,2000年是闰年,3200年不是闰年。
%输入a,如果公元a年是闰年输出Y,否则输出N
a = input("请输入判断年份");
if a/4 == int32(a/4)%思考一下为什么是这个判断条件,除了这样之外还能怎么判断
	if a/400 == int32(a/400)
		disp('Y');
	elseif a/100 == int32(a/100)
		disp('N');
	else
		disp('Y');
	end
else
	disp('N');
end

作业:

通过上面短暂的学习,希望大家自主学习并解决一下问题
1、写一个脚本,通过input读入三个数,
完成计算器简单功能,第一个数代表运算符号,
其中1代表加号,2代表减号,
3代表乘号,4代表除号,
5代表乘方,第二三个数是运算数据,
例如:
输入:1 2 3
输出2+3=5
输入:2 7 9
输出7-9=-2
输入:5 2 3
输出2^3=8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值