You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MATLAB中绘制符合要求的分段函数?

实现方法

首先明确两条线的交点计算逻辑:你需要的水平线为y = C(示例中C=0.31),原过原点直线为y = k*x(示例中斜率k=7.51619693312e-5),联立方程可直接得到交点横坐标为x_intersect = C / k,你只需要绘制x从0到x_intersect区间内、y值恒为C的线段即可。

以下是在你原有代码基础上修改后的完整可运行代码:

%% 定义过原点直线的函数句柄
k = 7.51619693312e-5;
f = @(x) k*x; % 原代码中a参数未实际使用,这里简化去掉冗余参数

%% 绘制原过原点直线
x = linspace(0, 15000);
plot(x, f(x), 'b-');
hold on % 开启图层叠加,避免后续绘图覆盖原有直线

%% 绘制指定y值的水平线段至交点
y_const = 0.31; % 你需要的水平常数值,修改此处即可更换水平线高度
x_intersect = y_const / k; % 自动计算两条线交点的横坐标
% 绘制水平线段,这里用红色虚线区分,可自行修改线型、颜色、宽度参数
plot([0, x_intersect], [y_const, y_const], 'r--', 'LineWidth', 1.5);
% 可选:标记交点位置
plot(x_intersect, y_const, 'ro', 'MarkerFaceColor', 'r');

%% 坐标轴设置(保留你原有配置)
xlabel(gca, '$W_{to}/S_w$ (Pa)', ...
'Interpreter', 'latex', ...
'FontName', 'Times New Roman', ...
'FontSize', 14, ...
'FontWeight', 'normal', ...
'FontAngle', 'normal')
ylabel(gca, {'$T_{to}/W_{to}$'}, ...
'Interpreter', 'latex', ...
'FontName', 'Times New Roman', ...
'FontSize', 14, ...
'FontWeight', 'normal', ...
'FontAngle', 'normal')

grid on
hold off % 关闭图层叠加

内容的提问来源于stack exchange,提问作者stevederekson555

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 20:27:03