Version: Next
基本操作
命令行
workspace
:变量command history
:命令历史current folder
:当前文件夹- command window:命令窗口
1 + 1 # 回车执行
脚本..(省略)
基本运算命令
- + - * / ^
计算结果会用
ans
显示- # + 法为例>> 2 + 1ans =3
运算符优先级按常规优先级处理
练习
>> cos(((1 + 2 + 3 + 4) ^ 3 / 5) ^ 0.5)ans =-0.0050
>> sin(pi ^ 0.5) + log(tan(1))ans =1.4228
函数查文档
看文档
matlab 右上角直接搜索
输入命令
help xxx
help sin
—— 查看sin
函数
函数嵌套
说白了就是利用 变量 简化函数调用
>> cos(pi)sin(ans)ans =-1ans =-0.8415
- 上述例子种,利用了
ans
作为中间变量
matlab 变量
所有变量会显示在
workspace
,可以看到ans
本身就是一个变量
- matlab 变量不需要
声明
- 命名规则按常规处理
- 大小写敏感
- 不能以数字开头
- 赋值号
=
- 等号
==
- 不等号
~=
变量类型
默认类型为
double
- logical(布尔)
- char 字符
- numeric数字
- int8 uint8 single
double
- int16 uint 16
- int32 uint32
- int64 uint64
- cell(元胞类型,没见过)
- struct 结构体
如何查看变量的类型
who # 查看所有变量whos # 查看所有变量所有信息>> whosName Size Bytes Class Attributesa 1x1 8 doublea1 1x1 8 doublea2 1x1 8 doubleans 1x1 1 logical
内置关键字
ans
i
、j
复变函数Inf
:无限大 默认为1/0
的结果eps
:一批斯隆NaN
:同 JavaScript 不是个数inf/inf = NaN
pi
:Π
# 查看 keyword 的命令
iskeyword
删除变量的指令
# 删除变量
clear 变量名
# 删除所有变量
clear
格式化输出
# 当作 long 显示变量
>> format long
>> pi
ans =
3.141592653589793
>> format longE
>> pi
ans =
3.141592653589793e+00
short
4位long
15位longE
科学计数法的 longshortE
科学计数法的 shorthex
十六进制rat
分式
练习
>> format rat>> (3/13) + (4/14) + (5/15)ans =232/273
; 分号
;
结尾的语句,其结果不会被显示在命令行窗口中>> a = 10;>>
清空命令行窗口
# clear command window display
clc
矩阵输入
行向量
>> a = [1 2 3 4]
a =
1 2 3 4
列向量
>> b = [1; 2; 3; 4]
b =
1
2
3
4
尝试
尝试计算 a * b
和 b * a
>> a * b
ans =
30
>> b * a
ans =
1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16
矩阵
- 用
;
换行
>> A = [1 21 6; 5 17 9; 31 2 7]
A =
1 21 6
5 17 9
31 2 7
矩阵索引
- 用 索引
index
访问矩阵中的元素
- 方法一:
变量名(下标)
,下标从1
开始!!,对于高维矩阵使用变量名(维度1,维度2,维度3.....)
>> A = [1 2 3 4; 5 6 7 8]
A =
1 2 3 4
5 6 7 8
>> A(1 , 3)
ans =
3
- 方法二:按列,每列从上向下,列从左往右,按升序排列,下标从
1
开始
>> A = [1 2 3 4; 5 6 7 8]
A =
1 2 3 4
5 6 7 8
>> A(5)
ans =
3
传递一组下标
A([下标1,下标2,下标3....])
传递一组下标
A([行下标], [列下标])
练习1
对于矩阵
A(8)
- 从最左侧第一列开始,从上向下一个一个数,从1开始,数到第8个
A =1 21 65 17 931 2 7>> A(8)ans =9
A([1 3 5])
- 数第1、3、5个
>> A([1 3 5])ans =1 31 17
A([1 3; 13])
- 先取 第一个、第三个 然后
;
换行,再取第一个和第三个>> A([1 3; 1 3])ans =1 311 31
A(3, 2)
- 获取第三行第二列那个元素
>> A(3, 2)ans =2
A([1 3], [1 3])
- 第一行第三行,第一列第三列,相交出来的元素(4个)
>> A([1 3], [1 3])ans =1 631 7
修改矩阵元素的值
- 用
索引
,然后对索引位置赋值
变量名(下标) = 值
练习2
1分12
等差数据输入
- 生成
1 2 3 4 ..... 100
A = [1:100]
- 生成
1 3 5 7 ... 99
- 第二个数是公差
B = [1 : 2 : 99]
练习3
B = 1:5
- 生成 1 2 3 4 5
>> B = 1:5B =1 2 3 4 5
B = 1 : 2 : 5
- 生成 1 3 5
>> B = 1 : 2 : 5B =1 3 5
B = [1 : 5; 2 : 3 : 15; -2 : 0.5 : 0]
- 第一行 1 2 3 4 5
- 第二行 2 5 8 11 14
- 第三行 -2 -1.5 -1 -0.5 0
>> B = [1 : 5; 2 : 3 : 15; -2 : 0.5 : 0]B =1.0000 2.0000 3.0000 4.0000 5.00002.0000 5.0000 8.0000 11.0000 14.0000-2.0000 -1.5000 -1.0000 -0.5000 0
str = 'a' : 2 : 'z'
>> str = 'a' : 2 : 'z'str ='acegikmoqsuwy'
选中整行
- 例如 A 的第三行
A(3, :)
- 将第三行删除
- 赋值为空行向量
A(3, :) = []
列同理
矩阵拼接
- 合并 A、B 矩阵
>> A = [1 2; 3 4]
A =
1 2
3 4
>> B = [9 9 ; 9 9]
B =
9 9
9 9
>> F = [A B]
F =
1 2 9 9
3 4 9 9
>> F = [A ; B]
F =
1 2
3 4
9 9
9 9
矩阵、向量四则运算
+ - * / ^ . '
.*
表示点乘
./
表示点除
.^
表示点幂
'
:转置
特殊矩阵
练习4
max(矩阵)
—— 每列最大值
>> A = [1 2 3; 0 5 6; 7 0 9]
A =
1 2 3
0 5 6
7 0 9
>> max(A)
ans =
7 5 9
max(矩阵')
—— 每行最大值;就是先把矩阵转置再求列最大
>> max(A')
ans =
3 6 9
max(max(矩阵))
—— 整个矩阵的最大值
>> max(max(A))
ans =
9
sort(矩阵)
—— 每列内进行排序
>> sort(A)
ans =
0 0 3
1 2 6
7 5 9
sortrows
—— 用第一列的元素进行排序,后续的列跟随第一列的元素一起移动,也就是保持每行元素不变
>> sortrows(A)
ans =
0 5 6
1 2 3
7 0 9
size
—— 返回矩阵有 xx 行 xx 列
>> size(A)
ans =
3 3
length
—— 针对向量的长度,因为向量维度1
find(A == 5)
返回 5
这个元素的下标,用的是按列从上向下数数字的方式
>> find(A == 5)
ans =
5