Matlab入门基础(matlab学习笔记)

  • 格式:docx
  • 大小:41.38 KB
  • 文档页数:9

by Cumber

版权归作者所有,未经授权不得转载

Matlab 笔记

Base(基础)

• num2str(x)——数字转为字符串

• save('file')——存储数据

load('file'))——加载数据

输入变量类型为字符串

• disp(x)输出,只能输出一个变量,如想输出多个,可使用向量输出。

• who——列出工作区变量

whos——列出工作区变量信息

• run('file')——运行脚本

• datestr(clock)——时间

其中,变量clock为当前时间的向量格式,datestr将向量转为字符串格式

• solve(func,x)——解方程

• syms x1 x2 ........ ——创建符号变量(即未知数)

• 换行——使用 ... 续接上行内容计时

tic toc

• 取整

round——就近取整

floor——向下取整

ceil——向上取整

fix——向0的方向取整

• 设置输出显示格式(有效数字)

format *style* 格式

long 长十进制小数点格式

shortE 短科学记数法

longE 长科学记数法

hex 十六进制

rat 分数

数学函数

绝对值——abs(x)

三角函数——sin、cos、tan、sec、csc、cot

反三角函数——asin(x)

指数——通常使用 ^ ,特殊e^x——exp(x)

开方——可以用 ^1/x ,平方根——sqrt(x)

对数——函数log(x) 为lnx 函数log10(x) 为lgx

取模——mod(x)

标准差——std(x)

逻辑符号

与 或 非

&& || ~

Matrix(矩阵)

创建

• 创建向量

linspace(x1,x2,n)——x1~x2之间等间距的n个数

a:n:b——a,b之间,间隔为n

• 创建矩阵

A = [1,2,3;4,5,6]——使用方括号,逗号或空格分隔元素,分号换行

• 创建特殊矩阵 (x*y矩阵)

zeros(x,y) 全0矩阵

ones(x,y) 全1矩阵

rand(x,y) 0~1的随机数

通过加减乘除来改变rand的范围

randn(x,y) 正态分布的随机数

运算与更改

• 矩阵的乘法—— * 为矩阵相乘,.*为对应元素相乘

• 矩阵转置——transpose(A)

另一种写法:A'

• 将矩阵转为列向量——B = A(:)

• inv(A)——矩阵求逆

A\b 与 inv(A)*b等价

• sort(A)——按升序对 A的元素进行排序

sort(A,dim)——A 沿维度dim的排序元素

[B,Ind] = sort(A)——B为排序后矩阵,Ind为对应索引

• 矩阵内运算

加法 sum(A) ; 乘法 prod(A)

规则:若A为向量,则为所有元素的运算。若A为矩阵,则为每列的运算,输出为行向量。prod(A,2)为每行的运算。

• 积累和——cumsum(A) 每项为从1到该项的累和

**其他规则及用法与sum相同**

• 重构——reshape(A,[x,y])

重构为x*y的矩阵,注意:前后元素数必须相等

• 将数组从左向右翻转——fliplr(A)

查找

• 矩阵中某元素

A(a,b) a行b列的元素

A(:,c) c列所有元素,冒号代表此维度所有内容

• size(A)——矩阵大小,返回对应A 相应维度的长度的行向量

• numel(A)——矩阵元素数目

• find函数

find(A)——返回非零元素的线性索引(行向量)

find(~A)——返回0的线性索引

find(条件)——查找满足条件的值(如“x<10&”)

[row,col] = find(A==x)——查找某元素的索引

• 最值——max(x) min(x)

[x,y] = max(x) ,x为最大值,y为对应索引

Graph(图象)

绘制

plot(x,y) 二维线图(散点) mesh(X,Y,Z) 网格图

plot3(X,Y,Z) 三维线图(散点) contour(X,Y,Z) 等高线图

surf(X,Y,Z) 曲面图 pie(x),pie3(x) 饼图(二维,三维)

bar(X,Y) 柱状图 scatter(X,Y) 散点图

histogram(x) 直方图 slice 三维体切片平面

spy 绘制稀疏矩阵 contourslice 在slice中绘制等高线

• surf(X,Y,Z)

X,Y,X必须为矩阵 使用surf前须用 [X,Y] = meshgrid(x,y) 将x,y转为二维网格,再写 z 关于x,y的表达式,这使x,y每种组合都于z对应。

代码示例:

[x,y] = meshgrid(x,y);

z = ...........%z 关于x,y的表达式

surf(x,y,z);

• 特殊:surfnorm(X,Y,Z)——带法线的曲面图

• slice(X,Y,Z,V,xslice,yslice,zslice)

为三维体数据 V 绘制切片。指定 X、Y和 Z作为坐标数据。使用以下形式之一指定 xslice、yslice 和 zslice作为切片位置

• contourslice同理

• **若要在matlab中绘制方程,可使用参数方程来表示x,y,并用plot绘制图像**

如绘制圆:

hold on——添加新绘图时保留当前绘图

grid on,grid off——显示或隐藏坐标区网格线

close all——关闭所有图窗

figure——创建图窗

fig1 = figure——创建图窗并命名为fig1

subplot(m,n,p)——创建m*n的坐标区,并在线性索引p的位置创建图窗

hold on——添加新绘图时保留当前绘图

plot图属性

顺序为:‘ 颜色 线形 标识符 ’

属性 名称 属性 名称

线宽 linewidth x,y刻度(输入向量) xtick,ytick

线形 LineStyle x,y坐标限度(输入1*2向量) xlim,ylim

颜色 color(后加RGB三色图) 标识符边缘颜色 MarkerEdgeColor

字体大小 fontsize 标识符填充颜色 MarkerFaceColor

设置刻度点 Xtick 标识符大小 MarkerSize

观察角度 view RGB颜色 Color

添加

text(a,b,'text')——在坐标(a,b)输出字符

title('sting')——标题

xlabel(‘string‘) ylabel('string’)——为x,y轴添加标签

legend('string')——图例

colorbar——添加显示色阶的颜色栏 pcolor([1:n;1:n])——显示一个颜色映象

参数更改

• set('对象','更改的属性',数值)——后期改图象属性

‘对象’非string格式,可为图窗(如:fig1)或 gca(即当前图像)。

可更改属性与plot相同。

• view([x,y])——更改观察视角,方位角和仰角

• axis([x1,x2,y1,y2])——更改坐标轴刻度范围,

输入为1*4的向量,为x、y轴刻度的上、下界

其他axis用法 作用

axis square 坐标轴变成方形

axis equal 使坐标轴刻度相等

axis tight 将坐标轴与数据匹配

axis xy 原点置于左下方(default)

axis ij 原点置于左上方

• 当然,xlim([x1,x2]),ylim([y1,y2])也能用来改坐标轴刻度范围,效果与axis相同

• shading style——设置着色属性

属性:flat、interp、facet(default)

• colormap()——更改颜色风格

风格:hot、jet、hsv

• caxis('auto')——自动更改颜色图范围

Function

• 其他脚本在调用函数文件中的第一个函数时,以文件名调用

• 函数输入参数数目——nargin 或 nargin('func')

输出——nargout 同理

判断与循环

匿名函数

匿名函数是不存储在单另的程序文件中的函数,写在脚本中。匿名函数就像标准函数一样接受输入并返回输出(只包含一个语句)。

单输入:fun = @(x) x.*exp(x)

其中“@”为匿名函数标志,“(x)”为输入,后面内容为数学函数式

注意:函数式中的运算符号应使用.* ./ .^ 运算(可能会输入向量或矩阵)。

多输入:fun = @(x) sin(x(1))+cos(x(2))

此时,输入x应为向量(多输入),x(i)为第i个输入

Optimal(优化)

曲线拟合

polyfit(x,y,n)——用多项式拟合数据

输入:x,y为散点的坐标,n为多项式最高次数

输出:长度为n+1的向量,为多项式的系数,按降幂排列。

polyval(p,x)—— 计算多项式 p 在 x 的每个点处的值

输入:p与ployfit输出同理

fmin最小值

• x = fminbnd(fun,x1,x2)——在[x1,x2]范围内寻找最小值

输入:fun为string格式的函数名或 @fun(函数名),x1和x2为上下界。

• x = fminsearch(fun,x0)——从x0开始附近寻找最小值

[x,fval] = fminsearch(fun,x0) 输出fval为该点函数值