[Matlab]基础教程学习笔记(一):基础和设置和矩阵教程
2012-11-18 17:20
676 查看
一、Matlab设置函数。
path:显示搜索路径所包含的所有内容
cd:current direction 查看当前路径
%:添加注释
userpath:显示默认的路径。
示例:userpath('D :\Program Files\MATLAB\R2008a\work');设置该目录为启动目录,参数为路径名;
savepath:保存相应修改
pathtool:界面工具修改相应的搜索路径
clc:命令界面清屏
二:数据操作
who:查看工作空间中的变量名
whos:详细显示工作空间变量名的相关信息
clear:清除工作空间中的所有变量,或者不加参数清除所有变量
save:保存工作空间中的所有变量保存到本地mat文件中。
使用方法:save [文件名][变量名][-append][-ascii]
使用实例(存储数据d):save myMatlab d-append
load:载入mat本地文件名,没有后缀
format:format+格式符,只影响存储,默认是short
三:数据类型
数值型数据
a = 1 ; 建立double类型的数据a。
b = uint8(a) ;将a转换为无符号8位整型
使用class查看当前数据的类型
double函数或者abs函数输出字符a的ASCII码
char函数将ASCII码转换成字符输出
str2num与num2str实现字符串与数值的互换
eval将字符串当成matlab的语句执行
结构体
定义一个结构体:
a.x = 1
a.y = 2
a.z = 3
isstruct判断是否是结构体,如果是返回1。
fieldnames显示结构体的所有成员。
isfiled(a,'x')检查是否是结构体的成员
rmfield删除结构体的成员
getfield获得结构体的成员
单元
使用{}括起建立
a={1,'string',[1,2,3,4]}
三:矩阵的基本操作
矩阵的建立
1)直接新建:
空格和逗号隔开的是同行向量,
A={1 2 3;4 5 6;7 8 9};
B={1 2 3;4 5 6;7 8 9};
C=A';
分号表示不是同行的向量。
2)文件创建:
edit命令新建m文件,运行的话直接输入文件名称即可。
3)特殊矩阵:
零矩阵:zeros(3,4)三行四列的零矩阵。
幺矩阵:ones(3,4)三行四列的幺矩阵。
4)冒号表达式建立向量
e1:e2:e3 初始值:步长:终止值
5)linspace(a,b,n)
a:第一个元素。b:最后一个元素。n:总元素
可以与冒号表达式进行互换
矩阵的简单操作
1)索引矩阵:使用下标进行索引。
A(2,3):先行标,后列标。
A(5):返回序列。matlab是用列存储,所以纵向计数。
[m,n]=find(A==8):两个参数则返回行号和列号
ind=find(A==8):一个参数则返回序号
size(A):返回矩阵的大小
sub2ind(矩阵大小,行标,列表):将m,n这些下表转换成序号
[m,n]=ind2sub(矩阵大小,序号):将序号转换成下表
2)重排矩阵
H=reshape(矩阵A,行数9,列数1)重新排列
3)矩阵的转置
加一个单引号,行变成列,列变成行。
4)矩阵的拆分
M = A(1,:)第一行的全部元素,冒号代表所有列
M = A(1,1:end)第一行的第一列到最后一列
M = A(1,[1 2 3])第一行的第一列第二列和第三列。
M = A(1,1:3)第一行的第一列第二列和第三列。
M = A([1,2],[1 2])第一行第二行的第一列和第二列。
5)删除矩阵
赋空值即可。
A(2)=[]:删除A矩阵中的第二个元素
A(1,:)=[]:删除A矩阵中的第一行元素
6)扩展矩阵
repmat(A,2,1)复制了两行一列
7)压缩矩阵
将相同元素删除从而实现矩阵压缩:unique(A)
四:特殊矩阵的建立
1)单位矩阵
eye(m,n):创建单位矩阵,一般行数等于列数,即m=n
2)随机矩阵
rand产生0~1的随机矩阵,随机矩阵:S=rand(10,1):
randn产生均值为0方差为1的随机矩阵,随机矩阵:S=randn(1,10):
生成从a到b均匀分布的随机向量可以使用:S = a +(b - a)*rand(m,n):
产生均值为u方差为s的正态分布的随机矩阵:S = u + sqrt(s)*randn(m,n):
>> S = 7 + sqrt(3)*randn(5,1)
S =
5.0132
5.1487
5.5979
1.9004
9.4913
可以使用mean和std求均值和方差。
3)魔方矩阵
使用magic(n)生成一个魔方矩阵:
4)Hilbert矩阵
hilb(n)生成Hilbert矩阵:
5)Toeplitz矩阵
五:矩阵和向量的运算
先用det判断行列式,如果行列式不为0再用inv求其逆矩阵。
向量可以看做1*n矩阵或者n*1矩阵,因此向量的加法和数乘等运算和矩阵是一样的。
内积运算:
六:线性方程组求解
七:矩阵的相似化简和分解
八:范数
九:矩阵分析
path:显示搜索路径所包含的所有内容
cd:current direction 查看当前路径
%:添加注释
userpath:显示默认的路径。
示例:userpath('D :\Program Files\MATLAB\R2008a\work');设置该目录为启动目录,参数为路径名;
savepath:保存相应修改
pathtool:界面工具修改相应的搜索路径
clc:命令界面清屏
二:数据操作
who:查看工作空间中的变量名
whos:详细显示工作空间变量名的相关信息
clear:清除工作空间中的所有变量,或者不加参数清除所有变量
save:保存工作空间中的所有变量保存到本地mat文件中。
使用方法:save [文件名][变量名][-append][-ascii]
使用实例(存储数据d):save myMatlab d-append
load:载入mat本地文件名,没有后缀
format:format+格式符,只影响存储,默认是short
三:数据类型
数值型数据
a = 1 ; 建立double类型的数据a。
b = uint8(a) ;将a转换为无符号8位整型
使用class查看当前数据的类型
double函数或者abs函数输出字符a的ASCII码
char函数将ASCII码转换成字符输出
str2num与num2str实现字符串与数值的互换
eval将字符串当成matlab的语句执行
结构体
定义一个结构体:
a.x = 1
a.y = 2
a.z = 3
isstruct判断是否是结构体,如果是返回1。
fieldnames显示结构体的所有成员。
isfiled(a,'x')检查是否是结构体的成员
rmfield删除结构体的成员
getfield获得结构体的成员
单元
使用{}括起建立
a={1,'string',[1,2,3,4]}
三:矩阵的基本操作
矩阵的建立
1)直接新建:
空格和逗号隔开的是同行向量,
A={1 2 3;4 5 6;7 8 9};
B={1 2 3;4 5 6;7 8 9};
C=A';
分号表示不是同行的向量。
2)文件创建:
edit命令新建m文件,运行的话直接输入文件名称即可。
3)特殊矩阵:
零矩阵:zeros(3,4)三行四列的零矩阵。
幺矩阵:ones(3,4)三行四列的幺矩阵。
>> ones(3,4) ans = 1 1 1 1 1 1 1 1 1 1 1 1
4)冒号表达式建立向量
e1:e2:e3 初始值:步长:终止值
>> 1:2:7 ans = 1 3 5 7
5)linspace(a,b,n)
a:第一个元素。b:最后一个元素。n:总元素
可以与冒号表达式进行互换
>> linspace(1, 5, 3) ans = 1 3 5
矩阵的简单操作
1)索引矩阵:使用下标进行索引。
A(2,3):先行标,后列标。
A(5):返回序列。matlab是用列存储,所以纵向计数。
[m,n]=find(A==8):两个参数则返回行号和列号
ind=find(A==8):一个参数则返回序号
size(A):返回矩阵的大小
>> A=[1 2 3;4 5 6;7 8 9] A = 1 2 3 4 5 6 7 8 9 >> size(A) ans = 3 3
sub2ind(矩阵大小,行标,列表):将m,n这些下表转换成序号
[m,n]=ind2sub(矩阵大小,序号):将序号转换成下表
2)重排矩阵
H=reshape(矩阵A,行数9,列数1)重新排列
>> H=reshape(A,1,9) H = 1 4 7 2 5 8 3 6 9H=A(:);将A矩阵转化成列向量返回
3)矩阵的转置
加一个单引号,行变成列,列变成行。
4)矩阵的拆分
M = A(1,:)第一行的全部元素,冒号代表所有列
M = A(1,1:end)第一行的第一列到最后一列
M = A(1,[1 2 3])第一行的第一列第二列和第三列。
M = A(1,1:3)第一行的第一列第二列和第三列。
M = A([1,2],[1 2])第一行第二行的第一列和第二列。
5)删除矩阵
赋空值即可。
A(2)=[]:删除A矩阵中的第二个元素
A(1,:)=[]:删除A矩阵中的第一行元素
6)扩展矩阵
repmat(A,2,1)复制了两行一列
>> A A = 1 2 3 4 5 6 7 8 9 >> repmat(A,2,3) ans = 1 2 3 1 2 3 1 2 3 4 5 6 4 5 6 4 5 6 7 8 9 7 8 9 7 8 9 1 2 3 1 2 3 1 2 3 4 5 6 4 5 6 4 5 6 7 8 9 7 8 9 7 8 9
7)压缩矩阵
将相同元素删除从而实现矩阵压缩:unique(A)
四:特殊矩阵的建立
1)单位矩阵
eye(m,n):创建单位矩阵,一般行数等于列数,即m=n
>> eye(5,5) ans = 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1
2)随机矩阵
rand产生0~1的随机矩阵,随机矩阵:S=rand(10,1):
>> S=rand(10,1) S = 0.8147 0.9058 0.1270 0.9134 0.6324 0.0975 0.2785 0.5469 0.9575 0.9649
randn产生均值为0方差为1的随机矩阵,随机矩阵:S=randn(1,10):
>> S=randn(1,10) S = 0.6715 -1.2075 0.7172 1.6302 0.4889 1.0347 0.7269 -0.3034 0.2939 -0.7873
生成从a到b均匀分布的随机向量可以使用:S = a +(b - a)*rand(m,n):
>> S = 5 + (7 - 4)*rand(5,1) S = 5.9513 7.8507 5.1033 6.3162 6.1447
产生均值为u方差为s的正态分布的随机矩阵:S = u + sqrt(s)*randn(m,n):
>> S = 7 + sqrt(3)*randn(5,1)
S =
5.0132
5.1487
5.5979
1.9004
9.4913
可以使用mean和std求均值和方差。
3)魔方矩阵
使用magic(n)生成一个魔方矩阵:
>> magic(5) ans = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9
4)Hilbert矩阵
hilb(n)生成Hilbert矩阵:
>> hilb(5) ans = 1.0000 0.5000 0.3333 0.2500 0.2000 0.5000 0.3333 0.2500 0.2000 0.1667 0.3333 0.2500 0.2000 0.1667 0.1429 0.2500 0.2000 0.1667 0.1429 0.1250 0.2000 0.1667 0.1429 0.1250 0.1111 >> format rat >> ans ans = 1 1/2 1/3 1/4 1/5 1/2 1/3 1/4 1/5 1/6 1/3 1/4 1/5 1/6 1/7 1/4 1/5 1/6 1/7 1/8 1/5 1/6 1/7 1/8 1/9
5)Toeplitz矩阵
>> toeplitz(1:6) ans = 1 2 3 4 5 6 2 1 2 3 4 5 3 2 1 2 3 4 4 3 2 1 2 3 5 4 3 2 1 2 6 5 4 3 2 1
五:矩阵和向量的运算
%%矩阵向量的计算 A = [1 0 0 0;3 1 0 0;-5 2 1 0;7 3 2 1]; B = [1 2 3 4;2 3 4 5;3 4 5 6;4 5 6 7]; k = 3; C = A + B; D = k*A; E = A'; det(E);%求行列式 inv(E);%求逆矩阵
先用det判断行列式,如果行列式不为0再用inv求其逆矩阵。
向量可以看做1*n矩阵或者n*1矩阵,因此向量的加法和数乘等运算和矩阵是一样的。
内积运算:
a = [1 + 5i, 2, 3 + 6i, 7 - 2i]; b = [2 - i, 4 + 3i, 3 - i, 6]; s = sum(conj(b).*a) s = a*b' %求解ab内积 s = dot(b, a) %求解ab内积
六:线性方程组求解
%% 线性方程组的求解 A = [1, 2, 3; 1, 4, 9; 1 8 27]; b = [5, -2, 6]'; x = inv(A)*b %效率不高 x = A\b
七:矩阵的相似化简和分解
%% 矩阵的相似化简和分解 A = [0 3 3; -1 8 6; 2 -14 -10]; jordan(A) [V J] = jordan(A) A = [1 0 i; 0 2 0; -i 0 1]; eig(A) [E D] = eig(A)
八:范数
%% 范数 A = [0 3 3; -1 8 6; 2 -14 -10]; norm(A, 1) norm(A, 2) norm(A, inf) norm(A, 'fro')
九:矩阵分析
%% 矩阵分析 syms x A = [sin(x) exp(x) 1; cos(x) x^2 + 1 log(x)]; diff(A) diff(A, 2) A = [0 1; 0 -2]; expA = funm(A, @exp) expA = expm(A) sinA = funm(A, @sin) cosA = funm(A, @cos)
相关文章推荐
- [Matlab]基础教程学习笔记(七):符号运算
- [Matlab]基础教程学习笔记(二):程序控制结构
- [Matlab]基础教程学习笔记(三):编辑器和程序调试
- [Matlab]基础教程学习笔记(四):二维高层绘图操作
- MATLAB学习笔记:矩阵基础
- [Matlab]基础教程学习笔记(五):二维底层绘图修饰
- [Matlab]基础教程学习笔记(六):NoteBook的使用
- Matlab矩阵操作基础,学习笔记...
- Matlab学习笔记一:矩阵基础
- [Matlab]基础教程学习笔记(七):符号运算
- Lua基础教程之赋值语句、表达式、流程控制、函数学习笔记
- Python基础教程学习笔记----第五章 条件、循环和其他语句
- python基础教程_学习笔记19:标准库:一些最爱——集合、堆和双端队列
- Matlab自带教程学习笔记1
- python基础教程学习笔记 第一章 基础知识
- Matlab自带教程学习笔记2
- Python基础教程 第6章: 抽象(函数) 学习笔记
- 多线程--毕向东java基础教程视频学习笔记
- python基础教程学习笔记 —列表和元祖(二)
- python基础教程学习笔记三