MATLAB学习记录(1)
写在前面
博客小白,第一次用这样的形式记录自己的学习,这学期的专业课作业需要学习使用Matlab和LaTeX,进行对矩阵的处理和数学公式的编辑排版,所以就从Matlab开始吧!!
(PS:本来以为菜鸟教程和W3School那种网站会有教程。。找了一圈发现都没有,就跟着大佬们的博客学着了)
界面展示
这就是我的Matlab界面~
运行MATLAB程序有两种方式:命令行式的和文件式的。这里先学习命令行式的。
变量和数据类型
1. 变量的声明和赋值
- MATLAB中没有变量声明语句,程序会根据变量名查找变量,若没有查找到,则会新创建一个变量。如:在命令行中输入
>> name = 'Andrew'
命令行自动输出name变量的值
注意
- 这里定义变量只能使用单引号,不能使用双引号 (后面会给出说明);
- 语句末尾不加分号,这样确保命令行以交互方式执行,即每次输入都会相应输出。如果在声明语句的末尾加上分号(;),语句会给name变量赋值,但命令行不会输出:
- 也可以给变量命名为数字类型:
>> a = 50;
>> b = 50;
>> sum = a + b;
此时工作区的变量如下:
2. 变量的删除和命令行的清理
- 可以删除已经声明的变量,使用语句
clear name;
可以删除已经声明的name变量,此时工作台不会有name变量。
- 如果试图访问不存在的变量,控制台会提示未定义:
- 注意到这里只是删除了a,而没有删除由a定义得到的sum
- 使用clear而不指定任何变量,则会将所有已经定义的变量删除
- 使用clc指令可以清除命令行中的所有指令(不清除变量),可以用来清理界面~
3. 变量及其属性的查询
使用who和whos语句可以对当前所有变量进行查询和展示:
- who语句简单查询当前变量名
- whos语句查询当前所有变量名和信息(长度、类型、存储空间大小等)
4. 变量类型、基本操作及转换
MATLAB中的数据类型有:
- 数值型
- 字符
- 数组
- 结构
- 函数句柄
4.1 数值型
默认情况下,MATLAB 以双精度浮点形式存储所有数值。
-
整数
分为有符号整数(int4,int8,int16,int32)和无符号整数(uint4,uint8,uint16,uint32)。后面的数字代表所占的bit位数。 -
浮点数
分为单精度浮点数(single,4字节)和双精度浮点数(double,8字节)。 -
复数
复数的构造函数为complex(a,b)
,表示形式为a+bi的复数。
可以通过real()
函数返回实部imag()
函数返回虚部abs()
函数返回模长conj()
函数返回共轭复数
-
类型转换
MATLAB可以使用诸如uint8()
的函数进行强制的类型转换:
需要注意:
①越界的数据进行强制类型转换会直接转换为上/下界
②single类型的数据不能直接与整数类型的数据运算
③double类型的数据与其它类型的数据运算得到的结果强制转换为其它类型
4.2 字符
创建字符:
>> c = 'Hello, world!';
关于字符和字符串,还有很多的函数和操作,因为主要以数学工具为主,这里不再赘述~
4.3 数组
创建简单的一维数组,元素间可以用空格或者逗号分隔:
>> a = [1 2 3 4];
>> b = ['a','b','c'];
创建二维数组,也就是矩阵,各行用分号分隔:
>> matrix_a = [1 2 3; 4 5 6; 7 8 9];
4.4 结构
与C语言类似,创建结构可以以下面两种方法,一种是直接指定结构体的属性,一种是使用struct()
函数(推荐):
创建后的结构体可以直接访问属性:
4.5 函数句柄
MATLAB中的函数句柄相当于JavaScript,C++等语言中函数指针或者对象。定义一个函数句柄的常用方法:
>> handle = @函数名