一、基本运算
基本加减乘除:
a=5+5 %加法,同理减法
b=2^3 %立方,
c=5*2 %乘法
x = 1; %分号用于不显示
y = x + 5
常见变量:
二、变量
2.1 基础
在上面小节,我们看到的左边就是字母就叫做变量。很简单,这里随便举几个例子就学会了。
(1)计算=a*2,a=5
clear all %清空
clc % 情况工作区
a=5;
b=a*2;
b
(2)通过用户输入来获取变量x的值,计算y=x*3
x=input('请输入数字') %input用于接收数字
y=x*2
- 1
- 2
(3)使用预定变量,常见的比如pi,inf,eps,NaN
r=1
L=2* pi *r
S=pi*r*r
- 1
- 2
- 3
2.2 数据显示格式
默认情况下,MATLAB 四个小数位值显示数字。这就是所谓的 short format。如果想更精确,需要使用 format 命令。长(long ) 命令格式显示小数点后16位。
注:一般来说,我们不会太在乎精度,能保留四位数就可以了,所以这个不怎么用得到。
通过以下两种方式对比即可理解,注意逗号分开:
format long ,pi
format short ,pi
- 1
- 2
再来个例子:
format short %直接声明为短型
a=3.1415926
- 1
- 2
2.3 基本关系运算符
常见大于等于小于,如果为真返回1,否则返回0:
a=5
b=2
a>b %大于
a==b %等于
a<b %小于
- 1
- 2
- 3
- 4
- 5
三、向量
3.1 基础
就是数组,矩阵的形式,举两个例子就知道了。
(1)手动输入数组。元素时间用空格/逗号,分号分割。其中逗号与空格等价。分号用于换行,制作多行多列矩阵。
r = [7 8 9 10 11]
r2 = [7 8 9 10 11]
c = [7; 8; 9; 10; 11]
d=[1 2 ;3 4 ;5 6]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
(2)冒号创建。格式:x=开始:间隔:结尾
x=2:2:10
- 1
(3)linspace函数创建线性间隔向量。基本格式:linspace(开始,结束,元素个数),默认个数为100。
y=linspace(1,20,10)
- 1
3.2 向量点积
矩阵相乘,自然是点积,不是直接的乘法。以几个例子作为说明。
(1)直接.*
a=[1 2 3 4 5];
b=[6 7 8 9 10];
c=a.*b
sum(c)
- 1
- 2
- 3
- 4
(2)使用dot函数点积
d=dot(a,b)
- 1
3.3 向量交叉运算
使用cross函数,基本格式为:cross(a,b)。前提:a和b必须为三维向量。例如:
a=[1 2 3 ];
b=[6 7 8 ];
c=cross(a,b)
- 1
- 2
- 3
四、交互式命令
4.1 input用户输入
其实在前面已经提到过了,这里再强调一次。
x=input("请输入数字:");
x
- 1
- 2
4.2 disp显示命令
基本格式:disp(x),显示变量x的值。例如:
a=5*3;
b=a*5;
disp(b)
- 1
- 2
- 3
4.3 pause暂停命令
pause用于暂停程序。例如下面只执行pause上面语句:
a=5*2
pause
b=a*2
- 1
- 2
- 3
五、分支结构
5.1 if-end
语法格式为:
if 表达式
语句组
end
例如:比较a和b的大小
clear all
clc
a=5;
b=2;
if a>b
fprintf("a大于b")
end
5.2 if-else-end
例如:
clear all
clc
a=5;
b=2;
if a>b
fprintf("a大于b")
else
fprintf("a不大于b")
end
5.3 if-elif-end
例如:输入一个数字,判断奇数和偶数
clear all
clc
x=input('请输入数字:');
c=rem(x,2) %求余数的函数
if c==1
fprintf('x为奇数')
elseif c==0
fprintf('x为偶数')
else
fprintf('非数字')
end
5.4 嵌套if
基本格式:
if 表达式
语句组
if 表达式
语句组
end
end
例如:判断学号是否正确,且为偶数
clear all
clc
y=input('请输入学号:')
if y==124
if rem(y,2)==0
fprintf('学号正确,且为偶数')
end
else
fprintf('学号错误')
end
六、循环结构
6.1 for循环
基本格式:
for 变量=表达式
执行语句
end
表达式的通常格式为f:s:l,s默认为1,m表示开始,l表示结束。举个例子说明:遍历数字1到10
for a = 1:10
fprintf('值a: %d \n', a);
end
同理可以设置间隔:
for a = 1:2:10
fprintf('值a: %d \n', a);
end
间隔也可以为负数:
for a = 1.0: -0.1: 0.0
disp(a)
end
右侧也可以是向量:
for a = [2 3 4 5 6]
disp(a)
end
6.2 while循环
基本格式:
while 表达式
语句组
end
举个简单的例子:遍历小于10的数字,并累加求和
i=0;
sum=0;
while(i<10)
sum=sum+i;
i=i+1;
end
fprintf('累加和为: %d \n', sum);
心得:
学习MATLAB中的基本运算和变量声明,首先需要注意的是它可以直接进行矩阵运算,非常方便地处理向量和矩阵的数据。然后,MATLAB中还有许多特殊的内置变量,我们需要了解。之后,MATLAB提供了很多函数可以非常方便地生成向量,这一点也需要重点掌握。接着,MATLAB有一些人机交互的命令,这可以加强代码的交互性。然后,condition判断和循环语句的语法结构与其他语言比较类似,需要注意end来结束语句块。之后,使用分号可以抑制输出,这可以使代码看起来更清晰。最后,MATLAB更适合进行科学计算和矩阵运算,因此非常适用于工程技术领域的数值计算。总之,学习MATLAB的关键是要多做练习,才能熟练掌握基本语法和函数,从而提高计算效率。综上所述,MATLAB作为一门科学计算语言,语法简单但功能强大。我们需要根据实际需求,合理利用它在矩阵运算方面的优势,这样可以极大地提高工作效率。多练习是学习MATLAB的最好方式。