在Matlab编写一个类似round的函数

怎么编写一个matlab函数,比如y=rounds(x,n),将x四舍五入成y,有n个有效数字,可以支持正负数和小数

你好,类似这种吗?

function round_main
my_round(3.14159, 3)
end

function y = my_round(x,n)
s = sign(x);
m = floor(log10(x));
t = 10^(-m+n-1);
y = double(int32(x*t));
y = s*(y*10^(+m-n+1));
end

结果:

3.14