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

MATLAB实现支持自定义线宽参数的cos(x)三子图绘制函数

MATLAB多子图cos曲线绘制函数修正

你现有代码的参数分支逻辑框架是对的,线宽始终取默认值的核心原因是缺少输入参数合法性校验,同时存在格式化显示不匹配、代码冗余的问题,以下是修正后的可直接运行版本:

function plotCos(varargin)
    % 基础默认线宽
    base_lw = [1,2,3];

    % 输入参数判断分支
    if nargin == 0
        lw_list = base_lw;
    elseif nargin == 1
        % 校验输入参数必须是正数值
        mult = varargin{1};
        if ~isnumeric(mult) || mult <=0
            error('传入的线宽乘数必须是正数值');
        end
        lw_list = base_lw .* mult;
    else
        error('函数最多支持传入1个线宽乘数参数');
    end

    % 生成绘图数据
    x = -pi:0.1:pi;
    y = cos(x);

    % 创建窗口
    fig = figure('Name','cos(x)曲线绘制(-π到π)','Position',[100,100,900,300],'Visible','on');

    % 循环生成3个横向子图,避免重复代码
    for idx = 1:3
        ax = subplot(1,3,idx,'Parent',fig);
        % 绘制黑色星号标记,线宽控制星号大小
        plot(ax, x, y, 'k*', 'LineWidth', lw_list(idx));
        % 设置子图属性
        title(ax, sprintf('线宽:%.1f', lw_list(idx)));
        xlabel(ax, 'x');
        ylabel(ax, 'cos(x)');
        xlim(ax, [-pi, pi]);
        ylim(ax, [-1.1, 1.1]);
        xticks(ax, -pi:pi/2:pi);
        xticklabels(ax, {'-π','-π/2','0','π/2','π'});
        yticks(ax, -1:0.5:1);
        grid(ax, 'on');
    end

    % 刷新绘图、保存结果
    drawnow;
    saveas(fig, 'cos_plot_result.png');
end

调用方法说明

  • 无参数调用:命令行输入plotCos(),三幅子图线宽依次为1、2、3
  • 传入乘数调用:命令行输入plotCos(乘数),例如plotCos(3)时三幅子图线宽依次为3、6、9;支持传入小数乘数,例如plotCos(0.5)时线宽依次为0.5、1、1.5,标题会同步显示实际使用的线宽数值。

注:如果传入非正数值、或者传入超过1个参数,函数会直接抛出明确的错误提示,避免静默运行得到不符合预期的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 07:39:20