少年易老学难成,一寸光阴不可轻。
视频来自B站《MATLAB教程_台大郭彦甫(14课)原视频补档》
学习笔记如下:
需要的可以作为参考。
%怎么告诉电脑我要画图
%其实电脑看不到function,它是把点画出来
%指令plot()如果不给x就是默认 1 2 3...
%plot(x,y) plot(y)
%只给y
plot(cos(0:pi/20:2*pi))
plot(sin(0:pi/20:2*pi))
%matlab画图会refresh,除非用hold on和hold off
hold on
plot(cos(0:pi/20:2*pi))
plot(sin(0:pi/20:2*pi))
hold off
%% Font ,Font size,Line width,Axis limit,Tick position;Tick label
y = -1*x + 3
plot((-5:0.1:5),y,'oy-')
%可以改变图形的style
%黑色k(靠!我的b怎么被blue抢走了) 蓝色b 蓝绿色c 绿色 g 红色r 白色w 黄色 y
%x是叉点, o是点 .,是点 *是*
%% plot(x,y,'str')
%str 放 markers line color
hold on
plot(cos(0:pi/20:2*pi),'or--')
plot(sin(0:pi/20:2*pi),'xg-')
hold off
%% legend()
A=[0 1 2];
exp(A);
%注意!x是一个向量,.*和./是矩阵元素之间的运算,*和/是对矩阵的运算
%(常数之间的计算直接用*/即可)
% 无legend的时候 '颜色标记线'
x = 0:0.5:4*pi;
y = sin(x);
h = cos(x);
w = 1./(1+exp(-x));
g = (1/(2*pi*2)^0.5).*exp((-1.*(x-2*pi).^2)./(2*2^2));
plot(x,y,'bd-',x,h,'gp:',x,w,'ro-',x,g,'c^-');
% 发现图线太多,所以要做标识
% legend('L1','L2',...)
x = 0:0.5:4*pi;
y = sin(x);
h = cos(x);
w = 1./(1+exp(-x));
g = (1/(2*pi*2)^0.5).*exp((-1.*(x-2*pi).^2)./(2*2^2));
plot(x,y,'bd-',x,h,'gp:',x,w,'ro-',x,g,'c^-');
legend('sin(x)','cos(x)','w','g')
%% title() and xlabel() ylabel() zlabel()
x = 0:0.5:4*pi;
y = sin(x);
h = cos(x);
w = 1./(1+exp(-x));
g = (1/(2*pi*2)^0.5).*exp((-1.*(x-2*pi).^2)./(2*2^2));
plot(x,y,'bd-',x,h,'gp:',x,w,'ro-',x,g,'c^-');
legend('sin(x)','cos(x)','w','g');
x = 0:0.1:2*pi;
y1 = sin(x);y2 = exp(-x)
plot(x,y1,'--*',x,y2,':o');
xlabel('t = 0 to 2\pi');%用反斜杠(转义字符)加pi,将特殊标识转换成一般读法
ylabel('values of sin(t) and e^{-x}');%特殊字源,把-x放到指数上去
title('Function of sin(t) and e^{-x}')
legend('sin(t)','e^{-x}');
% ps转义字符\ {}
%% LaTeX排版系统 annotation注解
% 在图像上显示一段文字text
%%用a^{}可以把表达式放在幂次上
x = linspace(0,3);%linspace生成x1,x2之间的N点线性的矢量
line([2,2],[0,2^2*sin(2)]);%在图像上划线,期末点的x和y
y = x.^2.*sin(x);
plot(x,y);
str = '$$ \int_{0}^{2} x^2\sin(x) dx $$';%用\是避免二次方和sinx搞混
text(0.25,2.5,str,'Interpreter','latex');%先写坐标,然后str,然后'Interpreter' 'latex'
annotation('arrow','X',[0.32,0.5],'Y',[0.6,0.4]);
%str=''想写积分,首先积分的开头和结尾用$$ $$,然后上下限用\int_{}^{}
%必须要有text!!这样才能让文字出现在图像上,text那一句固定的要写和str一块出现
text0.25,0.32,str,'Interpreter','latex')%先坐标 然后’Interpreter'最后'latex
annotation('arrow','X',[0.32,0.5],'Y',[0.6,0.4]);%先声明是arrow箭头,然后'X'起末x的百分比,'Y'起末y的百分比
x = linspace(1,2);%1到2,默认100个点
f= x.^2;
g =sin(2*pi.*x);
plot(x,f,x,g,'Xr');
legend('t^{2}','sin(2\pit)'); % 次序对应
xlabel('Time(ms)');
ylabel('f(t)');
title('Mini Assignment#1');
str='two function';
text(1.2,2.5,str,'Interpreter','latex');
annotation('arrow','X',[0.2,0.3],'Y',[0.6,0.5]);
%%
x = linspace(0, 2*pi, 1000);y=sin(x);
plot(x,y);
set(gcf,'Color',[1 1 1]);%背景是白的
% 有三个物件:Figure object桌布 Axes object轴,line object线
%% 知道了handle 句柄,就能改变这个object
%gcf Figure, gca Axes,
%To fetch properties
% gca 是axes的handle
x = linspace(0, 2*pi, 1000);
y = sin(x);
plot(x,y,'r');
set(gca,'XLim',[0, 2*pi]);%set(目标的handle,'XLim',更改后的范围)
set(gca,'YLim',[-1.2, 1.2]);
set(gca, 'FontSize', 25);%%FontSize 字体大小
set(gca, 'XTick', 0 : pi/2 : 2*pi);%真实的刻度取值
set(gca,'XTickLabel',0:90:360);%刻度的标签
% 1、xticklabel:xticklabel是刻度标签。2、xtick:xtick是坐标轴刻度。
set(gca,'XTickLabel',{'0', 'p/2', 'p', '3p/2', '2p'});
h = plot(x, y);
set(h, 'LineStyle','-.','LineWidth', 7.0,'Color', 'g')
%delete(h)删掉线
% 也就是说用get去得到handle,然后去用set来设置,set(h,'',)'
% ''这里面放handle 然后改就完事了
%% Marker face color ,edge color
x= rand(20,1);
y = x;
set(gca,'FontSize', 18);
plot(x,y,'Xg-','MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',10);
xlim([1,20]);
x = -10 :0.1: 10;
y1 = x.^2 - 8;
y2 = exp(x);
figure, plot(x, y1);
figure, plot(x, y2);
% 画在两个图上面
figure('Position', [left, bottom, width, height]);
%several small plots in a figure在一个figure上画很多小figure
subplot(m, n, 1);% m是竖方向的块个数,n是横向的块数,最后的1是第几个(从左往右再换行)
x = linspace(0,1);
y = (x.^2.*(1-x).^2) / 2;
g = (x.*(1-x).^3) / 3;
plot(x, y, x, g);
legend('y = (x^2*(1-x)^2) / 2', 'y = x*(1-x)^3) / 3');
%% 尝试一下三维图形
x = linspace(0, 3);
y = sin(x);
z = x + y;
plot3(x, y, z);
grid on;
xlabel('x');
ylabel('y');
zlabel('z');
%% subplot(m,n,p); 几乘几 第几个 改变轴的比例axis:normal ,square ,equal ,equal tight
t = 0: 0.1: 2*pi;
x = 3*cos(t);
y = sin(t);
subplot(2,2,1);plot(x, y); axis normal
subplot(2,2,2);plot(x, y); axis square
subplot(2,2,3);plot(x, y); axis equal %x y的单位长度一样
subplot(2,2,4);plot(x, y); axis equal tight
%% 操作
axis off
axis on
box off%框框
box on
grid on
grid off
%% Saving Figures into Files
saves(gcf, '<filename>','<formattype>');
% 用鼠标方便些
附加一些图片,需要的时候查询即可。
线条
保存
其他操作
当然,私以为,学习还是自己敲出来印象会更深刻。