Octave中的矩阵操作

时间:2015-05-19 11:21:59

标签: matrix octave

我想将mX1矩阵X映射到mXp矩阵Y,其中新矩阵中的每一行如下:

Y = [ X X.^2 X.^3 ..... X.^p]

我尝试使用以下代码:

Y = zeros(m, p);
for i=1:m
    Y(i,:) = X(i);
     for c=2:p
    Y(i,:) = [Y(i,:) X(i).^p];
    end
end

1 个答案:

答案 0 :(得分:1)

你想做什么叫做brodcasting。如果您使用Octave 3.8或更高版本,以下将正常工作:

octave> X = (1:5)'
X =

   1
   2
   3
   4
   5

octave> P = (1:5)
P =

   1   2   3   4   5

octave> X .^ P
ans =

      1      1      1      1      1
      2      4      8     16     32
      3      9     27     81    243
      4     16     64    256   1024
      5     25    125    625   3125

需要注意的重要事项是X和P如何分别是列和行向量。请参阅octave manual on the topic.

对于较旧版本的Octave(没有自动广播),可以使用bsxfun (@power, X, P)

完成相同的操作