两组之间的等距数字(向量化LINSPACE)-MATLAB [英] Evenly spaced numbers between two sets (Vectorize LINSPACE) - MATLAB

查看:166
本文介绍了两组之间的等距数字(向量化LINSPACE)-MATLAB的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

ab是向量或集合时,如何根据M=[a:(b-a)/5:b](从ab分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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆