两组之间的等距数字(向量化LINSPACE)-MATLAB [英] Evenly spaced numbers between two sets (Vectorize LINSPACE) - MATLAB
本文介绍了两组之间的等距数字(向量化LINSPACE)-MATLAB的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当a
和b
是向量或集合时,如何根据M=[a:(b-a)/5:b]
(从a
到b
分5个步骤)定义矩阵M
;更具体地说,M
中的每一行i
都应具有等于a(i)
的第一个值和等于b(i)
的最后一个值,并且之间应有5个相等的步长.
How can I define a matrix M
according to M=[a:(b-a)/5:b]
(from a
to b
in 5 steps), when a
and b
are vectors or sets; more specifically, each row i
in M
should have a first value equal to a(i)
and last value b(i)
and, in between, 5 equal steps.
例如,如果我有
a = [0; b = [10;
0]; 20];
我想生成形式为
的矩阵M
[0 2 4 6 8 10;...
0 4 8 12 16 20]
我知道如何使用循环来执行此操作,但是我正在寻找不使用循环的解决方案.我该怎么办?
I know how to do this using loops, but I'm looking for a solution without. How can I do that?
推荐答案
一个 vectorized
方法与 bsxfun
-
steps = 5 %// number of steps
M = bsxfun(@plus,((b(:)-a(:))./(steps-1))*[0:steps-1],a(:))
样品运行-
a =
2
3
b =
18
23
M =
2 6 10 14 18
3 8 13 18 23
这篇关于两组之间的等距数字(向量化LINSPACE)-MATLAB的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文