matlab学习笔记①

1.matlab工作环境

(1)下载安装

官方下载地址:MATLAB (mathworks.com)

应用界面:


(2)主窗口简介:

编辑器窗口: 

 新建脚本--调出编辑器: 编写程序通常在脚本中编写

(untitled后的*表示脚本未保存)

选中编辑器中部分代码,单击右键后点击执行,选中的代码在命令行中执行

命令行窗口:

matlab主要工作窗口,用户输入matlab运作指令、函数和表达式,并可显示除图形外所有运算结果,运行错误时会有相应的错误提示 \Rightarrow 用于执行当前代码

fx>>为命令提示符

①输入单行命令后按下enter执行命令,命令窗口将运算结果赋值给默认变量ans

②输入多行命令换行时按下enter+shift,多行命令编辑完毕后按下enter执行命令

③如果一个命令行很长,一个物理行写不下时在其后加...,按下enter键转到下一个物理行继续编辑命令的其他部分

当前目录浏览器:

用于设置当前目录,显示当前目录下的子目录、M文件等文件信息;对于该界面的M文件可直接进行复制、编辑、运行等操作

更改文件(.m)存储路径:

工作空间浏览器:

显示内存中所有的(命令行中定义并赋值的)变量名及数据信息,并可以对变量进行观察、编辑、提取和保存

文件概况窗口:

用于查看文件详细信息


2.matlab通用命令

所有交互命令在命令行输入!

帮助命令
命令功能
help+函数名在命令窗口中显示matlab函数或命令的帮助信息
helpdesk显示help浏览器界面
ver显示matlab版本信息
命令行管理命令
命令功能
close关闭当前的图形(figure)窗口
close all关闭所有的图形(figure)窗口
clc清除命令窗口中的内容
home光标回到窗口左上角
工作空间管理命令
命令功能
who列出当前工作空间的所有变量
whos

列出当前工作空间的所有变量的详细信息

clear

从工作空间清除所有变量

clear global从工作空间清除所有全局变量
clear all从工作区间清除所有变量、函数和MEX文件
workspace显示工作空间浏览器
load将磁盘工作变量加载到工作空间
pack将所有变量保存到磁盘后清除内存
quit退出matlab

3.matlab变量

(1)变量管理:

命名规则
①变量名区分大小写

②变量名不超过63个字符

③变量名必须以字母开头

④matlab保留字(命令指令、永久常数值等)不能用作变量名

赋值

变量名 = 变量值

 例:a = 1(也可以不加修饰空格写为a=1)

直接输入表达式进行运算

管理

who命令:显示所有已定义变量名

whos命令:显示所有变量及相关信息

clear命令:删除工作窗口所保存的变量

class()函数:输出变量类型

save命令:保存变量到文件

以下代码将当前工作窗口的变量a b x储存到mydata.mat文件中(储存变量的文件扩展名为.mat)

save mydata a b x   %save 文件名 变量名
save mydata d:\matlab\mydata a b x   %save 文件路径+文件名 变量名

load命令:加载变量文件到工作窗口

将.mat文件中储存的变量导入当前工作窗口 

load mydata a b x   %load 文件名 变量名
load mydata d:\matlab\mydata a b x   %load 文件路径+文件名 变量名

(2)数据类型:

matlab六大数据类型
数值类型(整数 浮点数 复数)int uint double等
逻辑类型logical
字符与字符串char
单元数组类型cell
结构体类型struct
函数句柄function_ha

数值型:

数值类型转换函数:intx()  uintx()  double()  (x表示转换成整数的位数)

 例:int8(15.48)=15  将浮点数15.48转换成无符号的八位整数

complex( , )   (产生复数,i,j为虚数单位)

例:z=3+4i 等价于 z=complex(3,4)

复数的运算函数表
函数名说明
real(z)返回复数z的实部
imag(z)返回复数z的虚部
conj(z)返回复数z的共轭复数
angle(z)返回复数z的辐角
abs(z)

返回复数z的模


逻辑型: 

逻辑型数据只有1和0两个值,1表示true状态,0表示false状态,逻辑型变量占1字节,任何类型值都可以参与逻辑运算(不一定非要是逻辑型),matlab将所有非零值看作逻辑1,零看作逻辑0

①逻辑类型转换函数:logical()

②运算:

关系运算的返回值为逻辑型值,关系运算符有:==(等于)、~=(不等于)、<、>、<=、>=

逻辑运算:逻辑运算中非零元素用1表示,零元素用0表示,逻辑运算符有:&(与)、|(或)、~(非)(&&先决与、||先决或、bitand位与、bitor位或、bitxor位异或、bitcmp位非)

与:均1则1,有0则0;或:有1则1,均0则0

(优先级:算术运算>关系运算>逻辑运算)


字符和字符串型:

用一对单引号' '括起来的单个字符是字符型,用一对单引号' '括起来的字符序列构成一个字符串

①每个字符以ASCⅡ码的形式存放,显示形式是可读字符

②要赋值的字符串中本身有单引号,需要用双引号来输入:a = "hello 'matlab'"

③使用“,”连接多个字符串

str1 = 'hello world!'
str2 = 'hello matlab'
s1 = [str1,str2]

输出结果:
s1 =
hello world!hello matlab

使用“;”构成字符串数组,每行的字符串长度必须相等

c1 = 'a'
s2 = [c1,'             ';str2;str1,'  ']
%c1后加13个空格,str1后加两个空格与str2长度补齐
matlab中常用的字符串合并函数
函数名功能说明
strcat()将字符串合并,同时删除合并后字符串尾部的空格
char()  strvat()将字符串合并成一个字符数组长度不同自动用空格补齐
matlab中常用的字符串与数值转换函数
函数名功能说明
abs()将字符串转换为ACSⅡ码值字符串中的每个字符都转为ASCⅡ码值
double()将字符串转换为ACSⅡ码值的double型数据字符串中的每个字符都转为ASCⅡ码double值
str2num()将字符串转换为数值
num2str()将数值转换为字符串
setstr()将ASCⅡ码值转换为字符串
int2str()将整数n转换为字符串

函数句柄:

函数句柄包含了函数的路径、函数名、类型以及可能存在的重要方法。函数句柄提供了一种间接调用函数的方法

不管函数文件是否在当前搜索路径上,不管他是都是子函数或私用函数,只要句柄存在,那么它代表的函数总能被正确执行。在不使用函数句柄的情况下,对函数进行多次调用时,每次都要进行全面的路径搜索,直接影响计算速度

\Rightarrow函数句柄使函数调用更加方便,提高函数调用可靠性,减少程序设计冗余,提高重复运行效率

创建函数句柄:

fhandle = @fun  %fhandle是函数句柄,fun是函数名,@是提示符

例:创建函数句柄计算 f = e^xcos(x) 的值

<方法一>
f1 = @cos
f2 = @exp
x = 2
f = f1(x).*f2(x)

<方法二>
创建M文件ex.m并保存,文件内容为:
function y = ex(x)
y = exp(x).*cos(x)
在命令窗口调用函数
fin = @ex
x = 2
f = fin(x)

 函数句柄调用时,可以直接调用,也可以用feval命令调用 

f1 = @sin
x = pi/4
y1 = f1(x)  %直接调用
y2 = feval(f1,x)  %用feval调用
y3 = feval('sin',x)  %feval直接调用函数sin

结构体类型:

结构体数据类型把一组不同类型但同时在逻辑上相关的数据组成一个有机的整体

创建结构体:

①直接赋值:结构体名.成员名 = 表达式

例:创建结构体a,结构体中有两个元素a(1),a(2),字段为name,sex,age

a(1).name = 'LiuHaoran'
a(1).sex = 'male'
a(1).age = 24
a(2).name = 'Jackson'
a(2).sex = 'male'
a(2).age = 26

  (数表形式呈现)

如果只输入a(1)的信息,则为:

②利用struct函数创建结构体:struct('field1',值1,'field2',值2,...)

 例:(同上)

a(1) = struct('name','LiuHaoran','sex','male','age',24)
a(2) = struct('name','Jackson','sex','male','age',26)

结构体引用:

a(1).name → 引用结构体a中a(1)元素的name字段

a(1) → 引用结构体a中a(1)元素获取其所有字段的值

a → 引用结构体名获取其结构信息

getfield()函数获取结构体内部数据:getfield(A,{A_index},'fieldname',{field_index})

(结构体名 变量下表 字段名 字段中数组元素的下标)

例:

getfield(a,{1},'age')

ans =
    '24'
结构体函数
函数名含义示例
rmfield()删除结构体元素refield(a,'age')
setfield()设定结构体元素的内容setfield(a,{1},'age',25)
isfield()元素在结构体内时值为真isfield('score',a)
isstruct()是否为结构体,是则值为真isstruct(a)
fieldnames()获取结构体元素名fieldnames(a)

单元(元胞)数据类型:

概念与结构体类似:把各种不同属性的数据放在一个单元中,每一个单元用来存放各种不同类型的数据(矩阵、多维数组、字符串、结构体等),可以是一维或多维

不同的是:结构体变量各个元素下有字段,每个字段都有自己的名字,而单元数据的各个元素就是不同类型的数据

单元数组建立:

①赋值:

例:

A = {'liuhaoran','male',24;'jackson','male',26}

②cell函数创建空单元数组:

A = cell(m,n) → 创建m×n单元数组

单元数组引用:

A{m,n} → 单元数组中第m行第n列的元素内容

A(m,n) → 单元数组中第m行第n列的元素(如果是数表则不展开,只缩略显示如[1×3 double])

单元数组内容显示函数
函数名功能
celldisp显示单元数组中具体数据内容
cellplot图形方式显示单元数组结构
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值