matlab基础

matlab用于数值计算和可视化,应用于数学计算、算法开发、 数据采集、系统建模和仿真、数据分析和可视化、科学和工程绘图、应用软件开发

java子程序库类,python子程序库模块,matlab子程序库工具箱,每一个工具箱都是为某一类学科专业和应用而定 制的,主要包括信号处理、系统控制、神经网络、图像处理、模糊逻辑、小波分析和系统仿 真等方面的应用。

信号处理工具箱、图像处理工具箱和编译工具箱

matlab(工程计算语言,矩阵实验室) 计算,可视化,编程
? 数学计算; ? 算法开发; ? 数据采集; ? 系统建模和仿真; ? 数据分析和可视化; ? 科学和工程绘图; ? 应用软件开发(包括用户界面)

MATLAB 是一个交互式系统(写程序与执行命令同步),它是以线性代数软件包 LINPACK 和特征值计算软件包 EISPACK 中的子程序为基础发展起来的一种开放型程序设计语言 可扩展

cd 显示或改变当前工作目录 load 加载指定文件的变量 dir 显示当前目录或指定目录下的文件 diary 日志文件命令 clc 清除工作窗中的所有显示内容 ! 调用 DOS 命令 home 将光标移至命令窗口的最左上角 exit 退出 MATLAB 7.0 clf 清除图形窗口 quit 退出 MATLAB 7.0 type 显示文件内容 pack 收集内存碎片 clear 清理内存变量 hold 图形保持开关 echo 工作窗信息显示开关 path 显示搜索目录 disp 显示变量或文字内容 save 保存内存变量到指定文件

↑ Ctrl+p,调用上一行 home Ctrl+a,光标置于当前行开头
↓ Ctrl+n,调用下一行 end Ctrl+e,光标置于当前行末尾
← Ctrl+b,光标左移一个字符 esc Ctrl+u,清除当前输入行
→ Ctrl+f,光标右移一个字符 del Ctrl+d,删除光标处的字符
Ctrl+← Ctrl+l,光标左移一个单词 backspace Ctrl+h,删除光标前的字符
Ctrl+→ Ctrl+r,光标右移一个单词 Alt+backspace 恢复上一次删除

: 冒号,具有多种应用功能 % 百分号,注释标记
; 分号,区分行及取消运行结果显示 ! 惊叹号,调用操作系统运算
, 逗号,区分列及函数参数分隔符 = 等号,赋值标记
() 括号,指定运算的优先级 ‘ 单引号,字符串的标示符
[] 方括号,定义矩阵 . 小数点及对象域访问
{} 大括号,构造单元数组 … 续行符号

help 获取在线帮助 which 显示指定函数或文件的路径
demo 运行 MATLAB 7.0 演示程序 lookfor
按照指定的关键字查找所有相关的 M 文件 tour 运行 MATLAB 7.0 漫游程序 exist 检查指定变量或文件的存在性 who 列出当前工作空间中的变量 helpwin 运行帮助窗口 whos 列出当前工作空间中变量的更多信息 helpdesk 运行 HTML 格式帮助面板 Help Desk
what
列出当前目录或指定目录下的 M-文 件、MAT 文件和 MEX 文件 doc
在网络浏览器中显示指定内容的 HTML 格式帮助文件,或启动 helpdesk

,要按住 Ctrl 键的同时按下 Enter 键进行换行输入

 MATLAB 的数据类型、基本矩阵操作、 运算符和字符串处理函数

有符号 1字节整数 -27 - 27-1 int8() 有符号 2字节整数 -215 - 215-1 int16() 有符号 4字节整数 -231 - 231-1 int32() 有符号 8字节整数 -263 - 263-1 int64() 无符号 1字节整数 0 - 28-1 uint8() 无符号 2字节整数 0 - 216-1 uint16() 无符号 4字节整数 0 - 232-1 uint32() 无符号 8字节整数 0 - 264-1 uint64() 在


matlab BIF(函数句柄) 数据类型和数据结构
int8() int16() int32() int64() uint8() uint16() uint32() uint64()
double() single()
complex(x,y) 复数
inf NaN
exp() log()
logical()
char()
struct('Name',{'Clayton','Dana','John'},'Score',{98.5,100,85.5},'Salary',{[4500 4200],[],[]}) 结构数组 Personel(1).Salary(3) {} 【】
celldisp(c) 单元数组 c{1,1}='Clayton'; c{1,2}=eye(3,3); c{2,1}=@sin; c{2,2}=true;  c(2,:)  c(1,:)=[]
rand()
a:b
5:-1:1
linspace()函数和 logspace()函
矩阵合并 [a b] [a;b]
sum(A(1:4, 4))
sum(A(:,end))

ones 产生矩阵元素全为 1 的矩阵
A=ones(n)    产生 n×n 的 1 A=ones(m,n)  产生 m×n 的 1
zeros 产生矩阵元素全为 0 的矩阵
A=zeros(n)    产生 n×n 的0 A=zeros(m,n)  产生 m×n 的 0
eye
产生单位矩阵,即主对角线 上的元素为1,其他元素全为 0
Diag
把向量转化为对角矩阵或者 得到矩阵的对角元素
X=diag(v,k)    把向量v转换为一个对角矩阵。 X=diag(v)     把向量v转换为一个主对角矩阵。 v=diag(X,k)    得到矩阵 X 的对角元素 v=diag(X)     得到矩阵 X 的主对角元素
magic
产生魔方矩阵,即每行、每 列之和相等的矩阵
magic(n)      产生 n×n的魔方矩阵
rand 产生 0~1 均匀分布的随机数
Y = rand(n)    产生 n×n 的0-1 均匀分布的随机数 Y = rand(m,n)  产生 m×n 的 0-1 均匀分布的随机数
randn
产生均值为 0,方 差 为 1 高 斯 分 布 的 随 机 数
Y = randn(n)    产生 n×n的标准高斯分布的随机数 Y = randn(m,n)  产生 m×n 的标准高斯分布的随机数 randperm 产生整数 1~n 的随机排列 p = randperm(n)  产生整数 1 到 n 的随机排列 compan 产生多项式的伴随矩阵 A = compan(u)   产生多项式 u的伴随矩阵
A=eye(n)     产生 n×n 的单位矩阵 A=eye (m,n)   产生 m×n 的单位矩阵

cat 在指定的方向合并矩阵
cat(DIM,A,B)    在DIM 维方向合并矩阵 A,B cat(2,A,B)       与[A B]用途一致 cat(1,A,B)      与[A;B] 用途一致 horzcat 在水平方向合并矩阵 horzcat(A,B)    与[A B]用途一致 vertcat 在竖直方向合并矩阵 vertcat(A,B)     与[A;B]用途一致 repmat 通过复制矩阵来构造新的矩阵 B = repmat(A,M,N)  得到M· N个A的大矩阵
blkdiag 用已知矩阵来构造块对角化矩阵
Y = blkdiag(A,B,...)  得到以矩阵 A、B…等为对角块的矩 阵 Y

函数名 函数描述 基本调用格式 length 矩阵最长方向的长度 n = length(X)         相当于 max(size(X)) ndims 矩阵的维数 n = ndims(A)         矩阵的维数 numel 矩阵的元素个数 n = numel(A)         矩阵的元素个数
size 矩阵在各个方向的长度
d = size(X)           返回的大小信息以向量方式存储 [m,n] = size(X)        返回的大小信息以分开存储 m = size(X,dim)       返回某一位的大小信息

逻辑运算
class 返回输入数据的数据类型 C = class(obj)  isa 判断输入数据是否为指定数据类型 K = isa(obj,'class_name') iscell 判断输入数据是否为单元型 tf = iscell(A)   
iscellstr
判断输入数据是否为单元型的字符 串
tf = iscellstr(A)
ischar 判断输入数据是否为字符数组 tf = ischar(A) isfloat 判断输入数据是否为浮点数 tf =isfloat(A) isinteger 判断输入数据是否为整数 tf =isinteger(A) islogical 判断输入数据是否为逻辑型 tf = islogical(A) isnumeric 判断输入数据是否为数值型 tf = isnumeric(A) isreal 判断输入数据是否为实数 tf = isreal(A) isstruct 判断输入数据是否为结构体 tf = isstruct(A)
isempty 测试矩阵是否为空矩阵 tf = isempty(A) isscalar 测试矩阵是否为标量 tf = isscalar(A) issparse 测试矩阵是否为稀疏矩阵 tf = issparse(A) isvector 测试矩阵是否为矢量 tf = isvector(A)

reshape 按照列的顺序重新排列矩阵元素 B = reshape(A,m,n)    把矩阵 A 变为 m·n 大小 rot90 旋转矩阵 90°  B = rot90(A)        旋转矩阵 90° B = rot90(A,k)       旋转矩阵 k*90°,k 为整数 fliplr 以竖直方向为轴做镜像 B = fliplr(A) flipud 以水平方向为轴做镜像 B = flipud(A)
flipdim 以指定的轴做镜像
B = flipdim(A,dim)   dim=1以水平方向为轴做镜像, dim=2              以竖直方向为轴做镜像 transpose 矩阵的转秩 B = transpose(A)     相当于 B=A.'
MATLAB 7.0 从入门到精通
–42–
续表
ctranspose 矩阵的共轭转秩 B = ctranspose(A)    相当于 B=A'


S=sparse([1,2,3,4],[3,2,1,3],[1,2,3,4],4,4)   full(S)
sparse(a)


speye 创建单位稀疏矩阵
S = speye(m,n)    创建 m×n 单位稀疏矩阵 S = speye(n)      创建n×n 单位稀疏矩阵
spones
创建非零元素为 1 的稀疏 矩阵
R = spones(S)     把矩阵 S 的非零元素的值改为 1
sprand
创建非零元素为均匀分布 的随机数的稀疏矩阵
R = sprand(S)     把矩阵 S 的非零元素的值改为均匀分布 的随机数 R = sprand(m,n,density)  创建非零元素密度为 density 的 m×n 大小的均匀分布的随机数
sprandn
创建非零元素为高斯分布 的随机数的稀疏矩阵
R = sprandn(S)   把矩阵 S的非零元素的值改为高斯分布的 随机数 R = sprandn(m,n,density)   创建非零元素值密度为 density 的 m×n 大小的高斯分布的随机数
sprandsym
创建非零元素为高斯分布 的随机数的对称稀疏矩阵
R = sprandsym(S)  返回对称随机稀疏矩阵,其下三角和主 对角结构与 S 相同 R = sprandsym(n,density)  返回 n×n 的对称随机稀疏矩阵, 其非零元素密度为 density
spdiags 创建对角稀疏矩阵
A = spdiags(B,d,m,n)    把B中的值放在 d 中指定的对角线 上,创建一个 m×n 的稀疏矩阵 spalloc 为稀疏矩阵分配空间 S = spalloc(m,n,nzmax)   相当于 sparse([],[],[],m,n,nzmax)

spy(west0479)   稀疏矩阵非零值的分布
nnz 返回非零值的个数 n = nnz(X) nonzeros 返回非零值 s = nonzeros(A) nzmax 返回用于存储非零值的空间长度 n = nzmax(S)

4.稀疏矩阵的运算规则
在 MATLAB 7.0 系统中的各种命令都可以用于稀疏矩阵的运算。但有稀疏矩阵参加运算 时,所得到的结果将遵循以下的规则: • 把矩阵变为标量或者定长向量的函数总是给出满矩阵; • 把标量或者定长向量变换到矩阵的函数(zeros()、ones()、eye()、rand()等)总是给出满矩 阵;而能给出稀疏矩阵结果的相应的函数有 speye()和 sprand()等; • 从矩阵到矩阵或者向量的变换函数将以原矩阵的形式出现。即定义在稀疏矩阵上的运 算生成稀疏矩阵,定义在满矩阵上的运算生成满矩阵。例如 chol(S)、max(S)和 sum(S) 等函数; • 两个矩阵运算符(如+、-、*、\、|)操作后的结果一般都是满矩阵,除非参加运算的 矩阵都是稀疏矩阵,或者操作本身(如.*,&)保留矩阵的稀疏性; • 参与的矩阵扩展(如[ A B;C D])的子矩阵中,只要有一个是稀疏的,那么所得的结果 也是稀疏的; • 在矩阵引用中,将仍以原矩阵形式给出结果。若 S 矩阵是稀疏的,而 Y 矩阵是全元素 的,不管 I、J 是标量还是向量,那么“右引用”Y=S(I,J)产生稀疏矩阵,而“左引用” S(I,J)=Y产生满矩阵。

+ A+B +A
加法或者一元运算符正号。A+B 把矩阵 A 和 B 相加。A 和 B 必须是具有相同长度 的矩阵,除非它们之一为标量。标量可以与任何一个矩阵相加
- A-B -A
减法或者一元运算符负号。A-B 把矩阵 A减去 B。A 和 B 必须是具有相同长度的矩 阵,除非它们之一为标量。标量可以被任何一个矩阵减去
.* A.*B
元素相乘。A.*B 相当于 A 和 B 对应的元素相乘。对于非标量的矩阵 A 和 B,矩阵 A 列长度必须和矩阵 B 的行长度一致。一个标量可以与任何一个矩阵相乘
./ A./B
元素的右除法。矩阵 A 除以矩阵 B 的对应元素,即等于 A(i,j)/B(i,j)。对于非标量的 矩阵 A 和 B,矩阵 A 列长度必须和矩阵 B 的行长度一致
.\ A.\B
元素的左除法。矩阵 B 除以矩阵 A 的对应元素,即等于 B(i,j)/A(i,j)。对于非标量的 矩阵 A 和 B,矩阵 A 列长度必须和矩阵 B 的行长度一致
.^ A.^B
元素的乘方。等于[A(i,j)^B(i,j)],对于非标量的矩阵 A 和 B,矩阵 A 列长度必须和 矩阵 B 的行长度一致 .’ A.’ 矩阵转秩。当矩阵是复数时,不求矩阵的共轭 * A*B 矩阵乘法。对于非标量的矩阵 A 和 B,矩阵 A 列长度必须和矩阵 B 的行长度一致。 一个标量可以与任何一个矩阵相乘 / A/B 矩阵右除法。粗略地相当于 B*inv(A),准确地说相当于(A'\B')'。方程 X*A=B 的解 \ A\B 矩阵左除法。粗略地相当于 inv(A)*B。方程 A*X=B 的解 ^ A^B 矩阵乘方。具体用法参见表后面的补充说明 ’ A’ 矩阵转秩。当矩阵是复数时,求矩阵的共轭转秩

MATLAB 7.0 对两个矩阵的对应元素进 行比较,返回的结果是与操作数具有相同规模的矩阵。

& 逻辑与。两个操作数同时为 1,运算结果为 1;否则为 0 A&B  = 01001 | 逻辑或。两个操作数同时为 0,运算结果为 0;否则为 1 A|B   = 11101 ~ 逻辑非。当 A 为 0 时,运算结果为 1;否则为 0 ~A = 10010 xor 逻辑异或。但两个操作数相同时,运算结果为 0;否则为 1 xor(A,B)=10100

bitand 位与。返回两个非负整数的对应位相与操作 bitand(A,B) = 20 (binary 10100) bitor 位或。返回两个非负整数的对应位做或操作 bitor(A,B) = 29 (binary 11101) bitcmp 补码。返回 n位整数表示的补码 bitcmp(A,5) = 3 (binary 00011) bitxor 位异或。返回两个非负整数的对应位做异或操作 bitxor(A,B) = 9 (binary 01001)

&& 逻辑与。两个操作数同时为 1,运算结果为 1;否则为 0 || 逻辑或。两个操作数同时为 0,运算结果为 0;否则为 1



字符串
strcat(a,b) 合并
a='adf' 创建
char('first','second')  二维字符串数组
cellstr(data)  字符串元数组
strcmp 比较两个字符串是否相等 strcmp(S1,S2)  如果字符串相等则返回 1,否则返回 0
strncmp
比较两个字符串的前n个字符是否相 等
strncmp(S1,S2,N)  如果字符串的前N个字符相等则 返回 1,否则返回 0
strcmpi
与 strcmp 函数功能相同,只是忽略字 符串的大小写
strcmpi(S1,S2)  如果字符串相等则返回 1,否则返 回 0(忽略大小写)
d strncmpi
与 strncmp 函数功能相同,只是忽略 字符串的大小写
strncmpi(S1,S2,N)  如果字符串的前 N 个字符相等 则返回 1,否则返回 0(忽略大小写)
strrep 字符串替换 str = strrep(str1, str2, str3)   把str1 中的str2 子串替换成 str3
findstr
字符串内查找(两 个输入对等)
k = findstr(str1,str2)       查找输入中较长的字符串中较短字符串 的位置 
strfind 字符串内查找
k = strfind(str, pattern)      查找str 中pattern 出现的位置 k = strfind(cellstr, pattern)   查找单元字符串 cellstr中 pattern出现的 位置
strtok
获得第一个分隔符 之前的字符串
token = strtok('str')         以空格符(包括空格、制表符(Tab)和 换行符)为分隔符 token = strtok('str', delimiter) 输入delimiter 为指定的分隔符 [token, rem] = strtok(...)     返回值 rem 为第一个分隔符之后的字符 串 
strmatch
在字符串数组中匹 配指定字符串
x = strmatch('str', STRS)     在字符串数组 STRS 中匹配字符串 str, 返回匹配上的字符串所在行的指标 x = strmatch('str', STRS, 'exact') 在字符串数组 STRS 中精确匹配字符 串 str,返回匹配上的字符串的所在行指标。只有完全匹配上时,才 返回字符串的行指标
char 把一个数值截取小数部分,然后转换为等值的字符 [72 105]   →   'Hi' int2str 把一个数值的小数部分四舍五入,然后转换为字符串 [72 105]   →   '72 105'
num2str 把一个数值类型的数据转换为字符串
[72 105]'   →   72/105/' (输出 格式为%1d/)
mat2str
把一个数值类型的数据转换为字符串,返回的结果是 MATLAB 7.0 能识别的格式
[72 105]'   →   [72 105]'
dec2hex 把一个正整数转换为十六进制的字符串表示 [72 105]   →   '48 69' dec2bin 把一个正整数转换为二进制的字符串表示 [72 105]   →   '1001000 1101001'
dec2base 把一个正整数转换为任意进制的字符串表示
[72 105]   →   '110 151' (八进制) MATLAB 7.0 为用户提供的把字符串转换为数值的函数如表 2-21 所示。
表 2-21 字符串转换为数值的函数 函数名 功能描述 例子 uintN 把字符转换为等值的整数 'Hi'   →   [72 105] str2num 把一个字符串转换为数值类型 '72 105'   →   [72 105]
str2double
与 str2num 相似,但比 str2num 性能优越,同时提供对单 元字符数组的支持
{'72' '105'}   →   [72 105] 
hex2num 把一个 IEEE 格式的十六进制字符串转换为数值类型 '400921fb54442d18'   →   'pi' hex2dec 把一个 IEEE 格式的十六进制字符串转换为整数 '12B'   →   299 bin2dec 把一个二进制字符串转换为十进制整数 ' 010111 '   →   23 base2dec 把一个任意进制的字符串转换为十进制整数 '12'   →   10(八进制


/matlab矩阵运算,数据类型,字符串操作/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值