如何在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
相关产品推荐
相关产品推荐

