tab键主动补全
本文已参与「新人创作礼」活动,一同开启创作之路
zeros(m) %创立 m x m 的全零矩阵
zeros(m,n) %创立 m x n 的全零矩阵
ones(m) %创立 m x m 的全1矩阵
ones(m,n) %创立 m x n 的全零矩阵
diag(A) %提取矩阵 A 的对角元素
fliplr(A) %对矩阵进行 左右 对称翻转
flipud(A) %对矩阵进行 上下 对称翻转
magic(m) %创立 m x m 的魔方矩阵 (暂无实际用途)
clear % 铲除变量
clc % 清空控制台
clf % 铲除图形
close % 封闭活动窗口
close all % 封闭一切活动窗口
type sphere % 检查函数文件代码 or type('sphere')
pathtool % 翻开设置途径窗口
dsip(x) % 显示函数 相当于打印
fprintf % 格式化输出
sprintf % 格式化输出,成果可以赋值给变量
绘图
x=[0:2:18]; %步长为2
y=[0,0.33,4.13,6.29,6.85,11.19,13.19,13.96,16.33,18.17];
plot(x,y)
area(x,y) %面积图
x=[0:2:18]; % 步长为2
y=[0,0.33,4.13,6.29,6.85,11.19,13.19,13.96,16.33,18.17];
plot(x,y) % plot先,再增加图例,否则无效
title('有用1') % 标题
xlabel('时间,min') % x轴标示
ylabel('间隔,ft') % y轴标示
grid on % 增加网格 grid off封闭
hold on % 冻结当时窗口,持续增加图形 hold off封闭
y1=[8,5.33,4.13,6.69,7.85,10.19,11.69,13.96,16.33,19.67];
plot(x,y1)
% 办法二
x=0:pi/100:2*pi;
y1=cos(x)*2;
y2=cos(x)*3;
y3=cos(x)*4;
y4=cos(x)*5;
plot(x,y1,x,y2,x,y3,x,y4);
% or
z=[y1;y2;y3;y4]
plot(x,z)
peaks(100) % 双变量函数 矩阵
plot(peaks(100))
A=[0+0i,1+2i,2+5i,3+4i]
plot(A)
title('一个复数数组x的波形') % 标题
xlabel('数组x的实部') % x轴标示
ylabel('数组x的虚部') % y轴标示
% 双复数,疏忽虚部
A=[0+0i,1+2i,2+5i,3+4i]
B=sin(A)
plot(A,B)
title('双复数数组的波形') % 标题
xlabel('数组x的实部') % x轴标示
ylabel('数组y的实部') % y轴标示
线型,符号,色彩,
在同一个坐标系内制作多条曲线
指令: plot(x1,y1,arguments1,x2,y2,arguments2…)
说明: 参数arguments
配置:线型,线条宽度,色彩,符号类型,符号巨细,符号面填充色彩,符号面周边色彩
线型
界说符 | – | — | : | -. |
---|---|---|---|---|
线型 | 实线(默认值) | 虚线 | 点线 | 点划线 |
符号类型
界说符 | + | o | * | . | x | d | ^ v < > |
---|---|---|---|---|---|---|---|
符号类型 | 加号 | 小圆圈 | 星号 | 实点 | 交叉号 | 菱形 | 向(上小左左)三角 |
s | h | p | |||||
正方形 | 正六角星 | 正五角星 |
色彩
标识符 | 蓝色 | 绿色 | 红色 | 青色 | 洋红色 | 黄色 | 黑色 | 白色 |
---|---|---|---|---|---|---|---|---|
色彩 | b | g | r | c | m | y | b | w |
x=[0:2:18]; %步长为2
y=[0,0.33,4.13,6.29,6.85,11.19,13.19,13.96,16.33,18.17];
plot(x,y,':ok')
hold on
plot(x,y*2,'LineWidth',1,'Marker','h','MarkerSize',12)
plot(x,y/2,'LineWidth',3,'Marker','d','MarkerSize',8)
% 坐标轴的缩放和图形的标示
clf %铲除图形
plot(x,y,':ok',x,y*2,'--xr',x,y/2,'-b')
legend('line1','line2','line3')
text(1,20,'这是一个文本框字符') % 增加文本框
title('这是一个标题 \alpha x^2 x_5 k^{-1}') % 标题
xlabel('x轴') % x轴标示
ylabel('y轴') % y轴标示
axis([0,20,0,30]) % 轴范围
% 多个子图
x=0:pi/20:2*pi;
subplot(2,2,2) % 2行2列第2个
plot(x,sin(x))
subplot(2,2,3) % 2行2列第3个
plot(x,sin(2*x))
% 极坐标图
x=0:pi/100:pi;
y=sin(x);
polarplot(x,y) % 弧度,半径
clear,clc
x=[1,2,5,4,8];
y=[x;1:5];
subplot(2,2,1)
bar(x)
subplot(2,2,2)
bar(y)
subplot(2,2,3)
bar3(y)
subplot(2,2,4)
pie(x)
clear,clc
x=[100,95,74,87,22,78,34,82,93,88,86,69,55,72];
subplot(2,2,1)
histogram(x) % 主动分配
subplot(2,2,2)
histogram(x,5) % 5个图形
subplot(2,2,3)
edges=[0,60,70,80,90,100]
histogram(x,edges) % 自界说分组
subplot(2,2,4)
histogram(x,edges,'normalization','countdensity') % 归一化,面积与该段数据的数量成正比
clear,clc,clf
x=0:pi/20:2*pi;
y1=sin(x)
y2=exp(x)
subplot(1,2,1)
plot(x,y1,x,y2)
subplot(1,2,2)
yyaxis left
plot(x,y1)
yyaxis right
plot(x,y2)
%--------------------元素周期性案例---------------------------%
clear,clc,clf
x=[3,11,19,37,55] % 原子序数
y1=[181,98,63,34,28.4] % 熔点
y2=[0.152,0.186,0.227,0.248,0.265] % 原子半径
subplot(1,2,1)
plot(x,y1,'-o',x,y2,'-x')
xlabel('原子序数')
ylabel('熔点')
subplot(1,2,2)
plot(x,y1,'-o')
xlabel('原子序数')
ylabel('熔点')
yyaxis right
plot(x,y2,'-x')
ylabel('原子半径,pm')
clear,clc,clf
% @固定最初,用于指定自变量,绘图函数,第二个参数为区间
fplot(@(x)sin(x),[-2*pi,2*pi])
% or
f=@(x) sin(x)
fplot(f,[-2*pi,2*pi])
三维曲线的制作
plot3(x,y,z) | 制作三维线图 |
---|---|
comet3(x,y,z) | 制作具有动画效果的三维线图 |
mesh(z)或mesh(x,y,z) | 制作网格曲面图 |
surf(z)或surf(x,y,z) | 绘曲面图,与mesh函数相似 |
shading interp | 烘托曲面图中的色彩 |
shading flat | 用纯色给每个网格着色 |
colormap(map_name) | 按用户设定的色彩制作曲面图 |
contour(z)或contour(x,y,z) | 制作等高线图 |
contourf(z)或contourf(x,y,z) | 制作填充的等高线图 |
surfc(z)或surfc(x,y,z) | 一起制作曲面图和等高线图 |
pcolor(z)或pcolor(x,y,z) | 制作伪彩色图 |
plot3指令将制作二维图形的函数plot的性扩展到三维空间。函数格式除了包第三维的信息(比方Z方向)之外,与二维函plot相同。plot3一般语法的调用格式是(x1,y1,z1,S1,x2,y2,z2,S2,…),这儿xn,yn和zn是向量或矩阵,Sn是可选的子符串,用指定色彩,符号符号,或线型。plot3可用来画一个单变量的三维函数
制作一个三位螺旋线
t=0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
title('Helix'),xlabel('sin(t)'),ylabel('cos(t)'),zlabel('t');
text(0,0,0,'Origin');
grid
v=axis;
三维网线图与外表图的制作
指令格式:mesh(x,y,z) %制作三维网线图
surf(x,y,z) %制作三维外表图
制作曲线在区域[-2,2] x [-2,2]上的图形
x=-2:0.1:2;
y=-2:0.1:2;
[X,Y]=meshgrid(x,y); %用x和y发生‘格点’矩阵
Z=cos(X.*Y); %核算‘格点’矩阵的函数值
mesh(X,Y,Z)
x=-2:0.1:2;
y=-2:0.1:2;
[X,Y]=meshgrid(x,y); %用x和y发生‘格点’矩阵
Z=cos(X.*Y); %核算‘格点’矩阵的函数值
surf(X,Y,Z)
三维网图的高档处理
1.消隐处理
2.裁剪处理
尽管曲面图不能作成透明的,但在一些情况下以很方便地移走一部分外表以便看到外表以下的部分,在 MATLAB中,这是通过在所期望的洞孔的所在方位,将数据置为特定的NaN来完成。由于NaN没有任何值,一切的 MATLAB作图函数都疏忽NaN的数据点,在该点出现的方位留下一个洞孔。
% 消隐处理
z=peaks(50);
subplot(2,1,1);
mesh(z)
title('消隐前的网图')
hidden off
subplot(2,1,2);
mesh(z)
title('消隐后的网图')
hidden on
colormap([0 0 1])
%-----------------------------------------------------------------%
% 图片裁剪处理
[X,Y,Z]=peaks(30);
x=X(1,:);
y=Y(:,1);
i=find(y>.8 & y<1.2);
j=find(x>-.6 & x<.5);
Z(i,j)=nan*Z(i,j);
surf(X,Y,Z)
grid
xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');
title('SURF of PEAKS with a Hole')
clear,clc,clf
x=-2:0.2:2;
y=-2:0.2:2;
[X,Y]=meshgrid(x,y); %用x和y发生‘格点’矩阵
Z=X.*exp(-X.^2-Y.^2); %核算‘格点’矩阵的函数值
subplot(2,2,1)
mesh(X,Y,Z)
title('mesh图'),xlabel('z'),ylabel('y'),zlabel('z')
subplot(2,2,2)
surf(X,Y,Z)
title('surf图'),xlabel('z'),ylabel('y'),zlabel('z')
subplot(2,2,3)
contour(X,Y,Z)
title('等高线图'),xlabel('z'),ylabel('y'),zlabel('z')
subplot(2,2,4)
surfc(X,Y,Z)
title('surf图与等高线图'),xlabel('z'),ylabel('y'),zlabel('z')
clear,clc,clf
[X,Y,Z]=peaks; % 示例函数peaks
subplot(2,2,1)
pcolor(X,Y,Z)
title('伪色图')
subplot(2,2,2)
pcolor(X,Y,Z)
shading interp % 刺进阴影形式 shading flat
title('刺进阴影')
subplot(2,2,3)
pcolor(X,Y,Z)
shading interp %
hold on
contour(X,Y,Z,20,'k') %20条等高线,k代表黑色
hold off
title('伪色与等高线图叠加')
subplot(2,2,4)
contour(X,Y,Z)
h=contour(X,Y,Z);
clabel(h)
title('符号的等高线图')
clear,clc,clf
x=5:30;
y=x.^2-40.*x+400;
plot(x,y)
axis([5,30,-50,250])
[a,b]=ginput % 鼠标右键 按回车
clear,clc,clf
x=[0.1,1,1.5,2]; x1=0.8667;
y=[2,1,0.2,2]; y1=1.6125;
z=[3,1,0.5,4]; z1=2.5723;
plot3(x,y,z,'o',x1,y1,z1,'s')
grid on
axis([0,2,0,2,0,4])
逻辑函数
clear,clc,clf
height=[63,45,95,26,78,65,61,59,65]
accept=find(height>=65) % find 查找满意条件的矩阵,回来下标
height(accept)
clear,clc,clf
a=25;
b=20:20:80;
if a<50
disp('G is a small value equal to:')
disp(a)
end
if b<50 % 非标量,全为真才执行
disp('G is b small value equal to:')
disp(b)
end
age=[15,17,25,55,75];
if age<16
disp('16')
elseif age<18
disp('18')
elseif age<70
disp('70')
else
beep % 宣布提示音
disp('age is a small value equal to:')
end
clear,clc,clf
city=input('请输入:')
switch city
case 'Boston'
disp('$324')
case 'Denver'
disp('$324')
case 'New York'
disp('$624')
otherwise
disp('Not on file')
end
clear,clc,clf
% menu 图形界面菜单
city=menu('Select a city from the menu:','Boston','Denver','New York');
switch city
case 1
disp('$324')
case 2
disp('$324')
case 3
disp('$624')
otherwise
disp('Not on file')
end
循环结构
scores=[76,45,98,97]
count=0
for k=1:length(scores)
if scores(k)>90
count=count+1;
end
end
disp(count)
clear,clc,clf
n=0;
a=1;
while(n<10)
n=n+1;
if(a>=0)
disp('test')
continue % 越过当时循环,持续下一轮循环
break % 提前停止循环
end
disp('this is a test')
end
数值核算办法
插值
clear,clc,clf
x=0:5;
y=[15,10,9,6,2,0];
new_x=0:0.2:5;
new_y=interp1(x,y,new_x) % 多点插值
plot(x,y,new_x,new_y,'o')
hold on
y1=interp1(x,y,3.5,'linear')
plot(3.5,y1,'g*')% 单点线性插值
%---------------三次样条插值-------------------%
clear,clc,clf
x=0:5;
y=[15,10,9,6,2,0];
new_x=0:0.2:5;
new_y=interp1(x,y,new_x,'spline') % 三次样条插值
plot(x,y,new_x,new_y,'-o')
hold on
y1=interp1(x,y,3.5,'linear')
plot(3.5,y1,'g*')% 单点线性插值
曲线拟合
线性回归
clear,clc,clf
x=0:5;
y=[15,10,9,6,2,0];
polyfit(x,y,1) % 1 代表直线是一阶
% ans =-2.9143 14.2857
best_y=-2.9143*x+14.2857
new_sum=sum((y-best_y).^2) % 核算平方和
plot(x,y,'o',x,best_y)
title('线性回归的最优拟合')
%-------------过零点线性回归-------------%
clear,clc,clf
x=[0,10,20,30,40,50]; % 风速
y=[0,24,38,64,82,90]; % 发生的力
polyfit(x,y,1) % 1 代表直线是一阶
% ans =1.8571 3.2381
best_y=1.8571*x+3.2381
a=x'\y'; % 左除强制该模型过零点
y1=a(1)*x;
plot(x,y,'o',x,best_y,x,y1)
legend('数据点','Polyfit拟合成果','左除运算成果')
title('风洞试验成果')
clear,clc,clf
x=0:5;
y=[15,10,9,6,2,0];
smooth_x=0:0.2:5;
for k=1:4
subplot(2,2,k)
% polyval 跟据回归条件,回来最佳拟合多项式系数,需要两个参数
% 榜首参数相似polyfit的系数数组,第二个是x数组,用来从头核算y值
plot(x,y,'o',smooth_x,polyval(polyfit(x,y,k+1),smooth_x))
axis([0,6,-5,15])
a=sprintf('%1.0f阶模型\n',k+1)
title(a)
end
clear,clc,clf
X=-2:.1:2;
Y=-2:.1:2;
[x,y]=meshgrid(X,Y);
z=3*(1-x).^2.*exp(-(x.^2)-(y+1).^2)...
-10*(x/5-x.^3-y.^5).*exp(-x.^2-y.^2)...
-1/3*exp(-(x+1).^2-y.^2);
subplot(1,2,1)
surf(x,y,z)
title('peaks函数')
[dzdx,dzdy]=gradient(z,X,Y)
subplot(1,2,2)
contour(x,y,z)
hold on
quiver(x,y,dzdx,dzdy)
title('peaks函数的偏导数')