Matlab 将数字拆分为多个部分,并获取最接近某个数字的部分
我想把一个数字分成几部分 例: 然后抓取一个给定的数字(如121)并检测哪一个最接近,在本例中为128 最好的方法是什么Matlab 将数字拆分为多个部分,并获取最接近某个数字的部分,matlab,Matlab,我想把一个数字分成几部分 例: 然后抓取一个给定的数字(如121)并检测哪一个最接近,在本例中为128 最好的方法是什么 谢谢。你的问题写得有点混乱,但我会回答你的问题: 给定一个数组a=[64 128 192 256]和一个数字,比如b=121,确定a中哪个元素最接近b: [~,i] = min(abs(a-b)) a(i) 然后a(i)将包含最接近b的数字您的问题写得有点混乱,但我会回答您的问题: 给定一个数组a=[64 128 192 256]和一个数字,比如b=121,确定a中哪个元素
谢谢。你的问题写得有点混乱,但我会回答你的问题: 给定一个数组
a=[64 128 192 256]
和一个数字,比如b=121
,确定a
中哪个元素最接近b
:
[~,i] = min(abs(a-b))
a(i)
然后
a(i)
将包含最接近b的数字
您的问题写得有点混乱,但我会回答您的问题:
给定一个数组a=[64 128 192 256]
和一个数字,比如b=121
,确定a
中哪个元素最接近b
:
[~,i] = min(abs(a-b))
a(i)
然后
a(i)
将包含最接近b
的数字,您不需要计算所有部分
function[res] = splitgrab(n, nParts, x) % (256, 4, 121)
d = n / nParts; % d = 64
mult = max(1, min(nParts, round(x / d))); % mult = 2
res = mult * d; % res = 64 * 2
您不需要计算所有零件
function[res] = splitgrab(n, nParts, x) % (256, 4, 121)
d = n / nParts; % d = 64
mult = max(1, min(nParts, round(x / d))); % mult = 2
res = mult * d; % res = 64 * 2
要乘坐@fiveclubs,请回答:
d=4;
c=256;
a=arrayfun(@(x)(x*d),(1:d)*c/d^2 ) % ;)
按照他的建议,我会给你数组
b=121;
[~,i] = min(abs(a-b))
a(i)
clossest point.乘坐@fiveclubs回答:
d=4;
c=256;
a=arrayfun(@(x)(x*d),(1:d)*c/d^2 ) % ;)
按照他的建议,我会给你数组
b=121;
[~,i] = min(abs(a-b))
a(i)
clossest point.不错!但是如何生成
数组呢?我的意思是,我想把数字256分成两部分,然后得到[128 256]。现在我想分为四个部分,我得到[64 128 192 256]…很好!但是如何生成数组呢?我的意思是,我想把数字256分成两部分,然后得到[128 256]。现在我想分为四个部分,我得到[64 128 192 256]…这个y
来自哪里?这是最有意义的,它是可伸缩的和有效的。这个y
来自哪里?这是最有意义的,它是可伸缩的和有效的。linspace(c/d,c,d)
获得a
可能更优雅。是的,我的实际建议(1:d)*c/d
非常相似。arrayfun只是一个玩笑…linspace(c/d,c,d)
获得a
可能更优雅。是的,我的实际建议(1:d)*c/d
非常相似。arrayfun只是一个玩笑。。。