1

我正在尝试创建一个大小为 121x101 的向量,以便第 i 列由V_t*e、 、V_t = 1000*10^((i-1)/20)e121 长的列组成。

显然i是从 1 到 1.01 亿不等,但是我如何将其应用于矩阵而不只在结果中产生最终值(将其应用于每一列而不重复命令)?

4

1 回答 1

2

从你的问题来看,每一行看起来都是一样的。因此,您可以使用REPMAT计算一行

iRow = 1:101;
V_t = 1000*10.^((iRow-1)/20);
V_te = repmat(V_t,121,1);

如果您希望e在第 1 行中为 1,在第 2 行中为 2,等等,您可以使用NDGRID创建两个与输出大小相同的数组,其中包含输出ei每个元素(i,j)的值

[ee,ii] = ndgrid(1:121,1:101);
V_te = 1000*10.^((i-1)/20) .* ee;

或者你可以使用BSXFUNei你做扩展

iRow = 1:101;
V_t = 1000*10.^((iRow-1)/20);
V_te = bsxfun(@times,V_t,(1:121)');
于 2011-03-02T13:09:33.747 回答