matlab 同个坐标下的两个函数图像的比较

matlab 同个坐标下的两个函数图像的比较




clc;
close all;% 这句可以不要
clear all;
 
funtool;% 这句可以在其他地方调用
 
figs = findobj( 0,  'Type' 'figure'  ); %找到当前所有figure句柄
 
% 确定figure1和figure2,原理是figure3有不止一个children
if  length( get( figs( 1 ),  'Children'  ) ) > 1
     fig1 = figs( 3 );
     fig2 = figs( 2 );
elseif length( get( figs( 2 ),  'Children'  ) ) > 1
     fig1 = figs( 3 );
     fig2 = figs( 1 );
else
     fig1 = figs( 2 );
     fig2 = figs( 1 );
end
 
% 新建一个figure和坐标系,用于画这两条曲线
fig4 = figure( 4 );
ha = axes(  'Parent' , fig4 );
hold on;
 
% figure1和figure2都只有一个坐标系,且坐标系里只有一条line对象,从line对象里挖掘出曲线的坐标点信息
line1 = get( get( fig1,  'children'  ),  'children'  );
x1 = get( line1,  'XData'  );
y1 = get( line1,  'YData'  );
 
line2 = get( get( fig2,  'children'  ),  'children'  );
x2 = get( line2,  'XData'  );
y2 = get( line2,  'YData'  );
 
% 分别用不同的颜色画两条曲线
plot( ha, x1, y1,  'r'  );
plot( ha, x2, y2,  'g'  );

MATLAB中,要在同一张图上绘制两个坐标的值相差较大的函数图像,需要合理选择y轴的刻度范围,或者使用对数刻度。此外,还可以采用子图(subplot)的方式来分别展示不同尺度的函数图像。以下是使用单个坐标轴绘制三个不同尺度函数图像的示例代码: ```matlab % 定义x的取值范围 x = linspace(0, 10, 1000); % 定义三个函数 y1 = sin(x); % 第一个函数 y2 = x.^2; % 第二个函数,可能的较大值 y3 = exp(0.5*x); % 第三个函数,可能的更大值 % 创建一个新的图形窗口 figure; % 绘制第一个函数 subplot(3,1,1); % 将图形区域分成3行1列,并在第一个区域绘制 plot(x, y1); title('函数1: sin(x)'); xlabel('x'); ylabel('y1'); % 绘制第二个函数 subplot(3,1,2); % 在第二个区域绘制 plot(x, y2); title('函数2: x^2'); xlabel('x'); ylabel('y2'); % 绘制第三个函数 subplot(3,1,3); % 在第三个区域绘制 plot(x, y3); title('函数3: exp(0.5*x)'); xlabel('x'); ylabel('y3'); % 调整布局以便更好地展示 tight_layout(); ``` 如果你希望三个函数能够在同一个坐标轴上显示,那么可以使用不同的线条样式和颜色,并且调整y轴的范围,使得所有函数图像都能被清楚地看到。这里提供一个示例: ```matlab % 绘制所有函数在同一个图上 figure; plot(x, y1, 'r-', 'LineWidth', 2); % 使用红色实线 hold on; % 保持图像,为后续绘图添加到当前图像上 plot(x, y2, 'b--', 'LineWidth', 1.5); % 使用蓝色虚线 plot(x, y3, 'g-.', 'LineWidth', 1); % 使用绿色点划线 % 添加图例,说明各个线条 legend('sin(x)', 'x^2', 'exp(0.5*x)'); % 设置标题和坐标轴标签 title('三个函数图像'); xlabel('x'); ylabel('函数值'); % 调整y轴的范围以便更好地展示不同的函数图像 ylim([min([y1 y2 y3]) max([y1 y2 y3])]); % 重新调整布局 tight_layout(); ``` 在这两个示例中,`tight_layout()`是一个假设的函数,用来表示调整图形布局以避免坐标轴标签、标题和图例之间的重叠,但在MATLAB中并没有直接的函数叫做`tight_layout()`。在实际操作中,可能需要手动调整图形窗口的布局或者使用`axes`函数来手动设置坐标轴的位置和大小。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值