matlab - 两组之间均匀间隔的数字(向量化 LINSPACE)- MATLAB

标签 matlab matrix vector vectorization

如何根据 M=[a:(b-a)/5:b] 定义矩阵 M(从 ab分5步),当ab为向量或集合时;更具体地说,M 中的每一行 i 应该有一个等于 a(i) 的第一个值和一个等于 b(i) 的最后一个值,中间有 5 个相等的步骤。

例如,如果我有

a = [0;     b = [10;
     0];         20]; 

我想生成一个 M 形式的矩阵

[0 2 4  6  8 10;...
 0 4 8 12 16 20]

我知道如何使用循环来做到这一点,但我正在寻找没有循环的解决方案。我该怎么做?

最佳答案

一个vectorized使用 bsxfun 的方法-

steps = 5                               %// number of steps
M = bsxfun(@plus,((b(:)-a(:))./(steps-1))*[0:steps-1],a(:))

sample 运行-

a =
     2
     3
b =
    18
    23
M =
     2     6    10    14    18
     3     8    13    18    23

关于matlab - 两组之间均匀间隔的数字(向量化 LINSPACE)- MATLAB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29034188/

相关文章:

performance - 快速平面适合多点

matlab - waitbar -> 条形图的长度?

matlab - 在 Matlab 中打印行号

python - MatLab 和 numpy 中 Hermitian 矩阵特征值的差异

c# - 3D 图形 - 矩阵数学不起作用

c++ - 我应该使用元组 vector 还是数组 vector ?

c++ - 将一个 vector 附加到另一个 vector 时,为什么移动元素比复制它们更便宜?

c++ - 为什么我在使用 for 循环和 cout 命令时没有打印出 vector

matlab - 将图形保存为高分辨率或无损图像,可以在不像素化的情况下放大

r - R 中矩阵下的匹配(查找)