MATLAB指令

本文详细介绍了如何在MATLAB中使用各种绘图指令,如绘制连续和离散函数,以及使用subplot创建多窗口,还有多项式拟合的应用。涵盖了plot、grid、xlabel、ylabel等关键函数的用法和示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

01--根据数学公式进行绘制

1.绘制连续函数
①一元函数

t=0:0.1:10; y=3*t+2; plot(t,y)

②一元二次函数

t=0:0.1:10; y=t.*t; plot(t,y)

注意此处应为点乘

③一元3次

t=0:0.1:10; y=t.*t.*t; plot(t,y)

④y=1/t

t=0:0.1:10; y=1./t; plot(t,y)

⑤y=exp(t)

t=0:0.1:10; y=exp(2*t); plot(t,y)

⑥y=sin(t)

 t=0:0.1:10; y=sin(2*t+0.5*pi); plot(t,y)

2.绘制离散函数

若想绘制离散函数点,则使用指令stem

t=0:0.1:10; y=sin(2*t+0.5*pi); stem(t,y)

02--常用的绘制指令

先取时间t

t=0:0.1:10;

绘制如下曲线:

y=sin(2*t+0.5*pi);

plot(t,y)

length

取点的个数

L=length(y);

rand

随机数,若直接用rand就是随机一个数,若用arand(x,y)  则随机x行y列的振幅为a的数

比如  >>a=1.5*rand(2,3)

a =

    0.6461    1.1498    0.5142
    1.4633    0.5251    0.7826

继续在前面的算式中按如下绘制

z=y+1.2*rand(1,L); plot(t,z)

subplot

如果想要同时显示2个窗口,则使用该指令

subplot - 在平铺位置创建坐标区

    此 MATLAB 函数 将当前图窗划分为 m×n 网格,并在 p 指定的位置创建坐标区。MATLAB
    按行号对子图位置进行编号。第一个子图是第一行的第一列,第二个子图是第一行的第二列,依此类推。如果指定的位置已存在坐标区,则此命令会将该坐标区设为当前坐标区。

 subplot(m,n,p)
    subplot(m,n,p,'replace')
    subplot(m,n,p,'align')
    subplot(m,n,p,ax)
    subplot('Position',pos)
    subplot(___,Name,Value)
    ax = subplot(___)
    subplot(ax)

title

加标题

>> t=0:0.1:10; y=sin(2*t+0.5*pi); z=y+1.2*rand(1,L);subplot(2,1,1); plot(t,z)
>> title('sin随机曲线','fontweight','bold');

这里的subplot指的是2行1列,在第一个位置绘图

例如我们想在第二个位置绘图,那么可以先把subplot挪到第2个位置

>> subplot(2,1,2);

绘制一个sin曲线

>> z=y+1.2*rand;
>> plot(t,z)
>>  title('sin曲线','fontweight','bold');

结果:

如果想再返回第一个图绘制,则继续挪位置到第一个图

>> subplot(2,1,1);
>> title('sin随机1曲线','fontweight','bold');

若想绘制多个图只需要去改变行列数值就行了

例如有2行2列四个图

>> t=0:0.1:10; y=sin(2*t+0.5*pi); z=y+1.2*rand(1,L);subplot(2,2,1); plot(t,z)
>>  t=0:0.1:10; y=sin(2*t+0.5*pi); z=y+1.2*rand;subplot(2,2,2); plot(t,z)

>> t=0:0.01:10; y=sin(2*t+0.5*pi); z=y+t;subplot(2,2,3); plot(t,z)
>> t=0:0.1:10; y=sin(2*t+0.5*pi); z=y+1.2*rand(2,L);subplot(2,2,4); plot(t,z)

grid

会把当前的绘制图加上表格线

>> t=0:0.1:10; y=sin(2*t+0.5*pi); z=y+1.2*rand(2,101); plot(t,z)
>> grid

xabel,ylabel

xlabel - 为 x 轴添加标签

    此 MATLAB 函数 将为 gca 命令返回的当前坐标区或图的 x 轴添加标签。重新发出 xlabel 命令会将旧标签替换为新标签。

    xlabel(txt)
    xlabel(target,txt)
    xlabel(___,Name,Value)
    t = xlabel(___)

>> xlabel('Time')
>> ylabel('Value')

冷end

更详细的参考帮助文档

simulink相关

打开模型

open_system('模型名字')

运行模型

sim('模型名字')

03--补充收集

//MATLAB绘画指令
hold on //保持打开指令,可在当前已经plot的图形上继续作画
hold off //与hold on相反,关闭当前的plot继续作画的功能
title(' ') //给当前图画添加标题
xlabel(' ') //给横轴加标注
ylabel(' ')//给纵轴加标注
legend(' ')//增加图例
grid on(' ')//给绘图增加网格线
grid off(' ')//关闭网格线
subplot(3,3,9)//总共有3行3列的图形,当前显示第9个图形
plot(t,y)//一般横轴作为自变量,纵轴作为求值,画出折线图
plot(t,y,'*')//设置图线的显示形式
//图线的显示形式有:B蓝色,G绿色,R红色,C青色,M品红
//Y黄色,K黑色,-.点划线,:点线,*星号,V向下三角形,D菱形
//S正方形,>向右正方形
plot(x,y,'R:*')//同时加颜色和图线
scatter(t,y) //散点图
linspace(-2,2,5)//生成线性间距向量
//y = linspace(x1,x2) 
//返回包含 x1 和 x2 之间的 100 个等间距点的行向量。
//y = linspace(x1,x2,n) 生成 n 个点。
//这些点的间距为 (x2-x1)/(n-1)。
bar(t,y)//柱形图
bar3(t,y)//三维的柱形图
bar(y,'stack')//堆叠的柱形图
barh(y)//水平的柱形图
stem(t,y)//离散的曲线图
pie(y)//饼状图
X=[10,50,5,30,5];
explode = [0 1 0 0 0];
pie(X,explode);//突出某一扇形的饼状图
pie3(y)//三维饼状图
x = 0:pi/100:2*pi;
y = sin(x);
y2 = sin(x-.25);
y3 = sin(x-.5);
plot(x,y,x,y2,x,y3)//在一幅图形中绘制多个数据集
legend('sin(x)','sin(x-.25)','sin(x-.5)')
//同样的图示也需要增加
set(gca,'XLim',[-50 50]);        //X轴的数据显示范围
set(gca,'XTick',[-50:10:50]);    //设置要显示的坐标刻度
set(gca,'YLim',[0 100]);         //Y轴的数据显示范围
set(gca,'YTick',[0:10:100]);     //设置要显示的坐标刻度
axis([xmin xmax ymin ymax]); //设置坐标轴在指定的区间
//xmin、xmax 表示设置横坐标的最小最大值;
//ymin、ymax 表示设置纵坐标的最小最大值。
set(handles,‘xtick’,0:100:2500) // handles可以指定具体坐标轴的句柄
//功能: 设置X轴坐标范围0到2500,显示间隔是100;
set(handles,‘ytick’,0:100:2500) //handles可以指定具体坐标轴的句柄
//功能: 设置X轴坐标范围0到2500,显示间隔是100;
grid on  //显示网格语句
grid minor  //显示次网格语句

举例:

a=3:4

b=[1 2 1;3 4 5]

bar(a,b)

bar3(a,b)

bar(b,'stack')

barh(b)

pie(b)

explode = [0 1 0;0 0 0];
pie(b,explode);

pie3(b)

 plot(soc,T25,'-^','color','g','MarkerSize',4)

%LineWidth - 线条宽度(默认:0.5)
%MarkerIndices - 要显示标记的数据点(默认:1:length(Y))
%MarkerEdgeColor - 标记轮廓颜色(默认:’auto’)
%MarkerFaceColor - 标记填充颜色(默认:’none’)
%MarkerSize - 标记大小(默认:6)

 plot(soc,T25,'-o','color',[0,0,0],'MarkerSize',4,'MarkerEdgeColor',[0,0,0],'MarkerFaceColor',[0,0,0])


  • 'MarkerIndices',[1 5 10]); %标记出现位置:第1,5,10个点处

set(gca,'XLim',[-50 50]);        %X轴的数据显示范围
set(gca,'XTick',[-50:10:50]);    %设置要显示的坐标刻度
set(gca,'YLim',[0 100]);         %Y轴的数据显示范围
set(gca,'YTick',[0:10:100]);     %设置要显示的坐标刻度
plot(x, y, 'r')
title('曲线');
xlabel(‘x轴的名称’);
ylabel(‘y轴的名称’);
axis([xmin xmax ymin ymax]); % 设置坐标轴在指定的区间
%xmin、xmax 表示设置横坐标的最小最大值;
%ymin、ymax 表示设置纵坐标的最小最大值。
set(handles,‘xtick’,0:100:2500) % handles可以指定具体坐标轴的句柄
%功能: 设置X轴坐标范围0到2500,显示间隔是100;
set(handles,‘ytick’,0:100:2500) % handles可以指定具体坐标轴的句柄
%功能: 设置X轴坐标范围0到2500,显示间隔是100;
grid on;  %显示网格语句
grid minor   %显示次网格语句
grid off  %删除网格线
ax = gca;
ax.XGrid = 'off'; %off表示不显示网格线
ax.YGrid = 'on';  %on表示显示网格线
figure(1) %第一张图片命名为figure 1
plot(x1,y1);  %在图figure 1 中绘制曲线
figure(2) %第二张图片命名为figure 2
plot(x2,y2);  %在图figure 2 中绘制曲线
%在使用plot函数绘图之前加上figure(n),表示在图n中作曲线,生成的图像被命名为figure n
plot(___,Name,Value)
%使用一个或多个Name,Value对组参数指定线条属性。
%LineWidth - 线条宽度(默认:0.5)
%MarkerIndices - 要显示标记的数据点(默认:1:length(Y))
%MarkerEdgeColor - 标记轮廓颜色(默认:’auto’)
%MarkerFaceColor - 标记填充颜色(默认:’none’)
%MarkerSize - 标记大小(默认:6)
%标记填充颜色RGB:0.5,0.5,0.5
%  'MarkerFaceColor',[0.5,0.5,0.5],... 
 'MarkerIndices',[1 5 10]);              %标记出现位置:第1,5,10个点处
有两个纵坐标轴的图

t=1:1:22;
yyaxis left
plot(t,T25);             %绘制左半边坐标轴的图
ylabel('电压');    %左半边坐标轴标签
yyaxis right
plot(t,soc);             %绘制右半边坐标的图
ylim([0 100]);       %右半边坐标轴的显示范围
ylabel('soc');    %右半边坐标轴标签

04--多项式拟合

可以进行多项式拟合

soc=0:5:100

T25为端电压

选择对应数据,5阶多项式拟合

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值