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为该点函数值