MATLAB学习笔记(1)
来源:互联网 发布:预产期计算软件下载 编辑:程序博客网 时间:2024/06/05 15:40
1.MATLAB命令行下的换行输入方法
(1).可以在该行输入语句后加空格然后...即可。(用于续接一行内容)(2).按下Shift+Enter即可换行。(用于希望先输入多条语句,然后再同时顺序执行它们)
2.MATLAB的基本数据类型
MATLAB中的基本数据类型包括数值类型、逻辑类型、字符串、函数句柄、结构体和单元数组类型。
2.1数值类型
(1).未加说明时与特殊定义时,MATLAB对所有数值按照双精度浮点数类型进行存储和操作。
>> x = 5;>> y = 2/5;>> z = 0.2687;>> m = 0;>> whos Name Size Bytes Class Attributes m 1x1 8 double x 1x1 8 double y 1x1 8 double z 1x1 8 double(2).在MATLAB中,单精度浮点数类型不能与整数类型进行算术运算。
>> c = single(6.02);>> d = 7.36;>> n = int16(10);>> result = c * n错误使用 .* 整数只能与相同类的整数或标量双精度值组合使用。 >> result = d * nresult = 74
2.2逻辑类型
与C/Java等编程语言不同点之一是不等于的关系操作符是~=,而非!=
2.3字符和字符串
(1).字符串内各元素存放的是各个字符的ASCII码值。
>> str = 'Hello world.';>> nstr = str + 2.5nstr = 74.5000 103.5000 110.5000 110.5000 113.5000 34.5000 121.5000 113.5000 116.5000 110.5000 102.5000 48.5000(2).字符串内的单引号由两个连续的单引号来表示。
>> String = 'I''m a goog boy.'String =I'm a goog boy.(3).可以直接将字符串用数组方式来实现连接。
>> A = 'Hell0 ';>> B = 'world!';>> C = [A, B]C =Hell0 world!
2.4函数句柄
函数句柄即函数的首地址,暂时我是这样理解的。2.5结构体类型
2.5.1结构体的创建
(1).可以通过字段赋值来逐个给结构体中的成员变量赋值。
>> Student.name = 'Amy';>> Student.age = '20';>> Student.height = '168';>> Student.weight = '55';>> StudentStudent = name: 'Amy' age: '20' height: '168' weight: '55'
(2).可以利用struct函数来创建结构体。
>> newArray = struct('Day', {'Thursday','Friday'},'Time', {'15:00','21:00'},'Number', {12});>> newArraynewArray = 1x2 struct array with fields: Day Time Number>> newArray[1] newArray[1] |错误: 圆括号或方括号不对称或异常。 >> newArray(1)ans = Day: 'Thursday' Time: '15:00' Number: 12>> newArray(2)ans = Day: 'Friday' Time: '21:00' Number: 12
在这里,数组的下标是用()而非[]。
2.6数组类型
在MATLAB中可以使用:来代替一系列数值,比如在定义数组时,用以生成从a到b,步长为1的数组,其格式为:
数组名 = a:b
>> Array = 4:10Array = 4 5 6 7 8 9 10需要设置步长时,只需在中间加一个参数即可,格式为:
数组名 = a:c:b;%步长为c
例如:
>> Array = 1:2:20Array = 1 3 5 7 9 11 13 15 17 19也可以使用linspace函数来创建线性序列和逻辑序列。其应用的两种格式为
数组名 = linspace(起始值, 结束值)%这个方法默认生成100个元素。
数组名 = linspace(起始值, 结束值, 元素个数)
>> Array = linspace(1,11,11)Array = 1 2 3 4 5 6 7 8 9 10 11
2.7单元数组类型
单元数组是一种不限制元素类型的广义矩阵(维数不限制)。组成单元数组的每一个元素称为一个单元。
2.7.1单元数组的创建
(1).使用赋值语句创建单元数组。其使用花括号{}来界定,使用逗号,或空格来分隔每一个单元,使用分号;来分行。
>> C = {'x', [1,3,6];10, pi}C = 'x' [1x3 double] [10] [ 3.1416](2).利用cell函数来创建空单元数组,其格式为:
单元数组名 = cell(行数, 列数)%这是一般二维数组的函数,若更多维则继续添加参数(该维度的长度)即可。
>> a = cell(2,2)a = [] [] [] []
2.7.2单位数组的访问
对于单元数组C,其访问包括对寻访单元与单元中的内容的访问。第m行第n列的单元数组外标识的访问是通过C(m, n)格式访问,第m行第n列的单元的访问是通过C{m, n}格式进行。
>> C{1, 1}ans =x>> C(1, 1)ans = 'x'
2.7.3单元数组的操作
(1).单元数组的合并与结构体的合并类似,直接{}内连接即可
>> C = {'x', [1,3,6];10, pi}C = 'x' [1x3 double] [10] [ 3.1416]>> D = {25; 'MATLAB'}D = [25] 'MATLAB'>> T = {C D}T = {2x2 cell} {2x1 cell}(2).单元数组中指定单元的删除,只需要将空矩阵赋值给该单元即可。
示例略
(3).单元数组的形状改变,需使用reshape函数,其格式如下:
更改后单元数组名 = reshape(要改变的单元数组名, 改变后的行数, 改变后的列数)
但应注意的是,reshape前后单元数组的元素个数不能改变。
>> C = {'x', [1,3,6];10, pi};>> X = reshape(C, 1, 3)错误使用 reshape要执行 RESHAPE,请勿更改元素数目。 >> X = reshape(C, 1, 4)X = 'x' [10] [1x3 double] [3.1416]
2.8map容器类型
2.8.1map类型概述
map即为映射的意思,即将map的键(key)映射为一个数据对象(value),因而可以将其理解为一种快速查找数据结构的方式。对于一个map元素进行寻访的索引称为“键”。一个键可以是以下任何一种数据类型:
(1).1*N的字符串;
(2).单精度或双精度的实数标量;
(3).有符号或无符号标量整数。
这些键与其对应的数据存储在map中。且各键属性需要一致!map类的对象具有三种属性,包括Count(表示map中key/value对的总数)、KeyType(键的类型)和ValueType(值的类型)通过“map名.属性名”即可查看属性值。
2.8.2map对象的创建
map对象通过其构造函数来创建,其格式如下:
map对象名 = containers.Map({键1, 键2, ……}, {值1, 值2, ……})
map对象名 = containers.Map() %用于生成空的map对象
>> mapObj = containers.Map({'小明', '小红'}, {15010230014, 15070150220})%姓名到学号的简单映射mapObj = Map (带属性): Count: 2 KeyType: char ValueType: double>> mapObj.Countans = 2>> mapObj.KeyTypeans =char>> mapObj.ValueTypeans =double
2.8.3查看/读取map对象
(1).查看map对象,可以通过keys函数与values函数实现。
(2).读取map对象可通过以下格式实现:
返回值 = map对象名(键值)
(3).若要对多个键值进行访问,可以使用values函数,格式如下:
返回数组名 = values(map对象名, {键1, 键2, ……})
>> mapObj = containers.Map({'小明', '小红', '小亮'}, {150102, 150707, 150209});>> keys(mapObj)ans = '小明' '小红' '小亮'>> values(mapObj)ans = [150102] [150707] [150209]>> number_x = mapObj('小明')number_x = 150102>> numbers = values(mapObj, {'小红', '小亮'})numbers = [150707] [150209]
2.8.4map对象的编辑
(1).从map对象中删除keys/values对。一般使用remove函数删除,其调用格式为:
remove(map对象名, 键名)
(2).从map对象中增添keys/values对。添加时,要确保新加入键的类型必需要与其他键的类型一致,其格式如下:
map对象名(新键名) = 新键值
(3).修改keys。若要在保持值不变的情况下修改键名,只能采用先删除该键值对,然后添加一个新的键值对的方法。
(4).修改values。直接通过赋值操作,覆盖掉原有值即可。
>> mapObj = containers.Map({'小明', '小红', '小亮'}, {150102, 150707, 150209});>> remove(mapObj, '小亮')ans = Map (带属性): Count: 2 KeyType: char ValueType: double>> mapObj('小刚') = 150104;>> mapObj('小红') = 140108;>> keys(mapObj)ans = '小明' '小刚' '小红'>> values(mapObj)ans = [150102] [150104] [140108]
阅读全文
1 0
- MatLab学习笔记(1)
- matlab学习笔记(1)
- MATLAB学习笔记(1)
- MATLAB学习笔记(1)
- matlab 学习笔记(1)
- matlab学习笔记 1
- Matlab学习笔记1
- Matlab学习笔记1
- MATLAB学习笔记(1 )find函数
- MATLAB学习笔记系列(1)
- Matlab学习笔记(一)
- MATLAB学习笔记(一)
- MatLab学习笔记(二)
- matlab学习笔记(一)
- Matlab学习笔记(一)
- Matlab学习笔记(二)
- Matlab学习笔记(三)
- Matlab学习笔记(四)
- PL/SQL developer连接数据库写法
- ORACLE WITH AS 用法
- Spring AOP 概念与术语
- c# winform 绝对路径与相对路径
- 机器学习 学习笔记
- MATLAB学习笔记(1)
- eclipse导入jar包和源文件
- 学习网站
- python中enumerate
- Vulkan简介
- 学习《啊哈!算法》
- 枚举
- mysql数据库安装
- Python学习---19