arrays - 如何在 Matlab 中生成乘法空间向量?

标签 arrays matlab

我正在尝试“自动”生成向量 0.01, 0.03, 0.1, 0.3, 1, 3, 10, 30(在乘法空间中)。

我知道 linspace 和 logspace 函数,但我找不到任何类似的乘法空间函数。

有吗?否则,如何生成我需要的向量?

最佳答案

使用 bsxfun 的简单方法,还考虑乘法到更小的空间:

x = [0.01,0.03,0.05]    % initial vector, works for various lengths
n = 12;                 % times it should get multiplied in rising direction
m = 3;                  % times it should get multiplied in falling direction

Z = bsxfun( @times, x(:), 10.^(-m:n) )
Z = Z(:)

% if preferred, bulky one-liner:
% Z = reshape( bsxfun( @times, x(:), 10.^(-m:n) ) , 1 , [])    

我假设与乘法向量相乘,例如:

10.^(0:n) =   1         10         100        1000       10000      100000  ....

但自定义向量 Y 也是可能的:

Z = bsxfun( @times, x(:), Y(:)' ) Z = Z(:)

关于arrays - 如何在 Matlab 中生成乘法空间向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21059333/

相关文章:

C 函数未生成预期的字符串

Javascript通过eval()实现多维数组

使用 MATLAB Engine 连接到已在运行的 MATLAB

c++ - 在 C++ 中对结构体数组进行排序

java - 如何在 Java 中声明和初始化数组?

matlab - K 折交叉验证 - 每次折叠后是否初始化网络?

matlab - 如何将(值的)标签添加到我的 MATLAB 图的顶部?

matlab - 创建极坐标直方图

matlab - 如何将监听器设置为 MATLAB 对象的结构字段

c++ - 这两个类型测试对象动态数组声明之间的区别?