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

MATLAB如何将cx_n四舍五入到十分位而非直接取整为整数

MATLAB取整逻辑调整方案

你当前代码输出整数的核心原因是round()函数默认四舍五入到最近整数,要实现向上取整到最接近的十分位,按以下逻辑修改即可:

  1. 十分位取整实现逻辑:要把数值向上取整到指定小数位,通用方法是先把数值放大对应倍数,做完向上取整后再缩小回原量级。要取到十分位(保留1位小数),对应放大10倍,用MATLAB内置的向上取整函数ceil()处理后再除以10即可,示例:
% 0.58向上取整到十分位的计算过程
ceil(0.58 * 10) / 10 
% 运算步骤:0.58*10=5.8 → ceil(5.8)=6 → 6/10=0.6
  1. 调整后的完整代码:
Fn = 3; %Nyquist Frequency
Fnr = 6; %Nyquist Rate
Fs = Fnr*5; %Sampling frequency
Ts = 1 / Fs; %Sampling period
T = 1 / 3; 
N = T / Ts; %Number of samples per period
start = 0;
stop =N-1;
c_increment = 1;
c_n = start:c_increment:stop;
c_nTs = c_n*Ts;
cx_n = sin(2*pi*3*c_nTs);

% 核心修改:替换原来的round(cx_n),向上取整到十分位
p = ceil(cx_n * 10) / 10;

for m_d = 1:length(cx_n)
    for quantisation = 1:length(yt)
        if (m_d ~= quantisation )
            stem(c_nTs, p);
        end
        
    end
end
  1. 可选适配:如果你的实际需求是四舍五入到十分位而非向上取整,把上面代码里的ceil替换为round即可,同样能得到0.6的结果,不会取整为1。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:15:04