在Matlab中用函数值填充矩阵

时间:2015-01-08 12:10:23

标签: matlab function loops for-loop matrix

我有3个功能,oe1(n)oe2(n)oe3(n)

我想创建一个表示函数值的矩阵。

矩阵的结构应该是这样的:

A = [oe1(0) oe2(0) oe3(0); oe1(1) oe2(1) od3(1); ...... ; oe1(N-1), oe2(N-1), oe3(N-1)];

我尝试用for循环填充它,但它不起作用。

这是否有标准的Matlab操作?我真的无法弄清楚该怎么做。

安德斯。

oe1(n1) = sin(2*pi*F*n1+phi)
oe2(n1) = ones(length(n1),1);
oe3(n1) = n1*Ts

pol = (oe2)'

vector_x = [a; b; c];
vector_veardier = [oe1(n1), 1, oe3(n1)]
xi = 1:N-1;


for i = 2:N-1;     
   for j = 1:3    
      vector_veardier(i, j) = oe1(j);    
   end    
end

1 个答案:

答案 0 :(得分:3)

你的功能是否接受载体?如果是这样,你可以使用:

A = [oe1((1:N)'), oe2((1:N)'), oe3((1:N)')];

但你可能不得不使用arrayfun

A = [arrayfun(@oe1, (1:N)'), arrayfun(@oe2, (1:N)'), arrayfun(@oe3, (1:N)')];

请注意,在您提供的代码中,您没有将oeN定义为函数,而是将某些值定义为在位置n1处插入值。

使用for循环执行此操作的一种方法是:

A = zeros(N,3);
for i = 1:N,
  A(i,:) = [oe1(i), oe2(i) oe3(i)];
end